The older games, those released on NES were really hard games, most of the new generation of players can't stand their difficulty.. Recent games started to become easier and more accessible to general public, So can the Hard Games sell these days? Yesterday on steemit I've discussed this topic with @lethn1 (a Gamedev) who expressed his fear of making his game too difficult and wanted the feedback from some Gamers (check out his thread he really needs the feedback).

(source)
I believe that if the Game is fair to the player, even if it's very difficult, it will sell. or at least it won't gain as many negative reviews as unfair game.
This article is written for a Game Developer but it can give the normal gamer some food for thoughts, I'm not an expert but I incorporated many things I learned by playing, reading articles, and watching Extra Credits (who are THE experts, you can find their videos below) in this article.
No Game is Too Difficult
Every level of difficulty have players who are so into it!!..and in my opinion, there's nothing called "too difficult" but there's a thing called "Unfairly Difficult".
But why difficult games are treated poorly most of the time? that's because many games are difficult in a way unfair even to the players who're really skilled.
There's a Difference Between "Hard to Master" and "Hard to Play"
A good Game is a Game that you can learn easily (unless it is marketed as
Hard to Learn) but it's hard to master. A game that makes you feel that you've improved a long way since you started but you still have more to learn.
A Hard to Play Game is bad, it might have terrible and unresponsive controls, it lags even on a powerful computer. or it doesn't have a clear set of rules, making the player think that the game concept is great but the design of it isn't good.
Unfair/Fake Difficulty
The game that cheats you, the game that has unfair rules or one that doesn't follow the rules it established. That's a game with Fake Difficulty... some of the things that makes the game like that is:
- The Game Levels aren't Difficult, but the way it's played is bad either because of Controls or the Design.
- The Game isn't clear about its rules.
- The Game doesn't offer the required info to complete it.
- The Game assumes the player knows things that are either incorrect or unrelated to this type of games.
- The outcome doesn't depend on the player's actions.
If the game promises skilled players that they win then it's fair, But if you can't win unless you know beforehand what the challenge will be (played the level before) no matter how much skilled you are? then the game is unfair.
How To Make A Difficult Game Fair?

1. Difficulty Must Not Be Faked
Players are smart (at least more than media think of them), if one of the problems mentioned in Fake Difficulty above is in it. They will know!! as these Games feel unfair even to the skilled players.
2. Controls!!
The best thing a game can have is Great Controls, and the worst thing it can have is Bad or Unresponsive Controls (especially in fast paced games).. If the new players can't get hang of how to control your characters in the first 5 minutes of the game? and the developers never made something to compromise that?! that's not a good design choice.
(The player should be able to change the control buttons too)
3. The Game Should Be Approachable
The Game should start simple, not necessarily easy, but it should introduce as little as possible of its system at first, ensuring the player knows how to use one set of the game rules before gradually introducing the next, and there should be a challenge there. Just make the challenge in the first few levels in a way ensures the player gets the experience and skill to tackle the next levels.
4. Rules Should Be Consistent
Don't surprise the player with changing the rules halfway of the game, If the player is used to some rule of the game and they see something new in your new level, then they should think how to tackle it within the rules the game showed them until now.
If there is some rule change coming.. the game should imply that it will come... like putting a checkpoint/savepoint just before it, so when the player lose they know they've lost because there is a new rule they have to learn... and the player won't feel like "they couldn't have been able to see that coming".
5. "Trial And Error" Should Be Beneficial But Not Needed
If even the skilled players 'must' lose the first time they play a section of the game? mostly because something unexpected within the rules the player knows happens. Then this game depends on "Trail And Error" to fake its difficulty. And that's very bad!!
When the player thinks "How the heck I was supposed to see that coming?!!" when they lose, when they feel the game made them lose and they haven't lost due to their mistakes, that's the point where most Gamers "rage quit".
If it was "I should've seen that coming" instead, and the average players started immediately thinking of the mistake they made and found one. then that game is fair.
A good difficult game should make the player always say "next time, I will do it for sure".
and if the player is expected to lose the game many times? the good game will have a very short time delay between time between losing and trying again. even instantly if possible.
6. If You Did Bad At Early Game That Shouldn't Make The Game Harder Later
Unless the game has a narrative reason for that, or if the player knows that messing up now will make them regret it later. Some type of games it's very easy to do, like games where you gain resources (let's say healing items) you're supposed to save until later in the game but the player doing badly at early levels use them to save themselves at the time. Only to not have enough of that resource 3 hours later!! making the game unwinnable for them.
If it's necessary to have that in the game then it should at least allow the player to 'save' themselves without restarting the game from the early levels.
7. Offering Multiple Options To Clear Every Challenge
A Game even if all of them are harder to do than the average game on the market, the game should give you enough tool to complete every challenge in more than one way... The best strategy to do this is making every challenge can be overcome with in at least three ways:
- The Skilled Player Option: requires a lot of skill but very short time and/or resources from the player.
- The Average Player Option: requires some skill but also needs some time and/or resources.
- The Boring Option: that requires no skill at all, It requires a lot of time but as little resources as possible.
With some of the challenges have very boring ways to overcome them, players can use these ways to avoid challenges they can't succeed because they lack skill, but at the same time, they know that if they're skilled enough they'll do it faster, so they'll try to improve their skill.
The Boring Option also uses at least resources as possible, its main benefit is to spare the resources to try overcoming the next challenge by The Average Player Option.
Conclusion
Many indie games fall short of following these points I wrote above, most of the recent AAA titles does them, but most of these games aren't difficult. Dark Souls is one game that's very difficult but is loved because of that.

(Source: Dark Soul)
To write this Post I've read a little about the topic but most of the info can be found in "This topic" and these two Videos "When Difficult Is Fun" & "Easy Games".
As a gamer, what do you think about Hard Games? Do you think I'm right or wrong? Do you have something to add to this topic?
I'm waiting for your opinions.
Wow, I've said "a good game is" so many times here.. didn't I?