Low on health, I crouch silently in Far Cry's tropical undergrowth. Pulling out my sniper rifle, I edge forward until I can just make out the guard tower in the distance. Suddenly, I get shot between the eyes by a grunt with a pistol half a mile away. "Stupid cheating piece of crap!" I cry, turning off my 360 in disgust. My problem is not just that I'm a sore loser, it's that Far Cry's creators have (unintentionally or not) broken the social contract between gamer and developer.
A social contract can be seen as a set of unwritten rules which governs our interactions with each other. Always tip your waiter? That's a social contract. Don't steal bases in a blowout in baseball? Social contract. Swearing in front of your buddy's mom? Don't even think about it.
Social contracts between players are obvious in multiplayer games. Achievement grinding servers for Team Fortress 2 and an agreement amongst players not to use certain tactics, such as grenade tagging in Gears of War, are both social contracts.
In single player games, though, there is a sort of social contract between the game's designers and the player which defines what we expect from games and what those games expect from us in return. Many expectations are obvious, such as giving the player a fair chance at winning or ensuring that bosses have weak spots, while some are more subtle, such as how we expect our character to grow during the game, but they all influence the design of the games that we play. A well-designed game will allow us to forget that these contracts exist. A poorly designed one will rub them in our faces.
The most notable instance of gaming's social contract is expectation of "fairness." As gamers, we both expect and demand a fair chance to win the game. (Note that this is not the same as a game being "easy." A game can be hard but fair.) We expect that the game will not ask us to do seven impossible things before breakfast, nor will it perform those impossible things against us.
This is, of course, why I was so pissed off while playing Far Cry. There is no explicit reason why the NPC shouldn't be able to shoot me from half a mile away. A human player isn't squinting at a monitor, trying to make that shot; the game's AI knows exactly where I am at all times and could shoot me at will. The only reason that superhuman sentries are poor game design is because such behavior doesn't feel "fair." I can't pull off that shot and so the computer should not be able to either.
There are other situations in which "fairness" constrains design. Consider Half-Life. Did you get eaten by the first barnacle that you encountered? Me neither. That's because we saw a Barney get eaten by one first. (All guards were known as Barneys in the original game.) The same thing happens with a scientist and the tentacle monster. It occurs, in fact, with any insta-kill situation in any of the Half-Life games. The designers at Valve are scrupulously fair. If there is something new that can kill you in one shot, they will warn you about it first, ensuring that when you do get eaten by a barnacle (and we've all tried to climb that "rope" at least once), it's a fair death.