People are basically pattern recognising machines. Throughout our lives we recognise and try to understand patterns in everything. We find games fun because they present us with a series of challenging and often new patterns defined within a controlled medium. To make a game fun for five minutes is easy, the problem is that once we recognise a new patter it’s only fun for a while, then we get bored.
To maintain player interest you need to introduce new patters at regular intervals, some examples of how this can be done would be doing something a bit different in your levels as the player progresses, such as introducing new enemies, new weapons, new strategies, behaviours or environments that present new navigational challenges.
Some good ways to vary the patterns encountered within a game may be to:
1) Allow the player to choose their equipment, either at the start of a level or during a level (via upgrades/pickups). Allowing the player to prepare in different ways with some of the possible outcomes providing a better chance of success can help, especially if the items that really help have to be earned in some way.
2) Making environments an integral part of the gameplay can allow you to introduce new spatial puzzles and/or interactive elements that can greatly enhance the experience and allow you to introduce new interesting elements to your levels as the player progresses through the game.
3) Ensure that the player makes use of multiple abilities as they progress. As an example, Tomb Raider requires mouse/controller/aim accuracy, precision movement (jumping), breath management (swimming under water), and an understanding of enemy behaviours to the extent that you can work out how to defeat them. You won’t encounter them all at once as pacing is important when trying to maintain interest, giving the player everything at the start of the game will result in them getting bored quickly and probably not bothering to finish it.
4) Of course having a number of different ways to complete a level will always make things more interesting. Making your games rule-set flexible enough to provide the player with a certain amount of freedom when solving puzzles so there are multiple solutions can greatly improve the experience for the player.
5) Rewarding the player is important. This can be done in many different ways, such as rewarding the player for completing tricky tasks (especially satisfying if they are not compulsory), providing added bonuses for completing certain tasks, giving upgrades, points boosts, achievements, extra lives etc. etc. All help to maintain interest and give the player something more than the core game mechanics to try and achieve. A good rewards system can add a lot to your game.
There are many more things that can go towards making games fun, these are just a few and TBH I wouldn’t place ‘amazing art’ and ‘fantastic sound’ anywhere near as important as the gameplay, sure they help get the initial interest and draw attention to your game but that’s all they do, if the game isn’t fun you wont play it no matter how great it looks. Bottom line is… repetitive patterns get dull very quickly, remember how bored YOU get doing the same things over and over, in games as well as in real life; as soon as a game gets repetitive you’ll most likely stop playing it soon!
‘What makes games fun’ is a huge subject that’s well worth discussing and continuing to discuss, I hope what I’ve written is a help to some of you