In part 1 of this game design foundations series I talked about some general design tips and attitudes that will help you to create games that people want to play. However, there is a bit more to it than just having a killer idea and writing up a design document! In this article I am going to explore some gameplay mechanics and give tips related to them that will help raise the design values of almost any game you could make. Note that these tips are, again, very general and as such can be applied to almost any type of game in some way...
You may not realise it, but the most successful games are those that have a great atmosphere. For some games, it's the music that brings most of the atmospheric edge. For others, it's the graphics. For still others, it's a sense of progression within the gameplay. If you look at a game like Dark Souls, it has a fantastic atmosphere that is dark gritty and beautiful and it really helps draw you back to the game. Without the details and “feel” it would be a game that quickly bored as you die again and again... and again and again and again! In fact, I would go as far as to say that Dark Souls only selling point is its atmosphere! Another perfect example of a game which has succeeded because of its atmosphere (and that was made with GameMaker) is the game Undertale. Neither the graphics nor the sound design nor the gameplay stand out in this game - which is currently the highest scoring game ever on Metacritic - and taken on their own they could even be a turn off to many people since the art in particular is almost "programmer art". However those aspects of the game combine together with an outstanding and humorous story and together create an ambience, an atmosphere, which sucks you in and makes it a marvellous and unique experience to play.
My point here is that atmosphere is seldom generated by a single aspect of your game. It's not the graphics, it's not the sound design, and it’s not the story... It's all of these things taken as a whole and it's how they work together. So, atmosphere is important, but how do you create this in your own games? Easy... attention to detail! That's it. Pay attention to the little details in your game, those things that the player may not even consciously notice, but that when they do they go “cool!” For example, in a shooter game make the blood splashes permanent, or have bullet casings that bounce when they hit the floor. In a platform game, have a parallax background image. In a puzzle game have a visual response, like a wobble or a bounce, when the player moves a piece instead of a simple a → b straight movement.
You should also spend time on the sound effects and music for your game as they are an often neglected part of building a particular atmosphere. In a scary game, you can have punctual sounds that build tension. In an action game you can have ambient sounds that help set a scene. In a puzzle game you can use sound to provide feedback. All these factors are important to the player and you should think as much about your sound effects as you do about your graphics. Music too is important. Close your eyes when playing your game and really listen to the music. Does it feel like it belongs in your game? Does it conjure up appropriate images to the listener? Are all the tracks in your game coherent and working together to create a more complete experience? It's also worth asking yourself if your game wouldn't benefit from having less sound or music - sometimes the absence of something can help build atmosphere too, so don't be afraid to leave things out if you think that it actually adds to the game.
Another thing that is crucial to most games is variety. With the exception of very few games (Flappy Bird springs to mind, or Super Hexagon), if your game does not have variety it will bore the player, and with the huge offering of games out there, this may be something that you can't afford to leave out, even if it is a minor part of the gameplay or graphics.
Variety doesn't just mean cramming as many different weapons as possible into your game, or blowing the player away with gameplay options. It means having a curve whereby the player is continually discovering new things. This can be simple stuff like different level graphics as the player progresses – or unlocking new weapons when the player reaches a certain score – but it can also be more complex things like unlocking whole new game-modes. A perfect example of variety in games is the Zelda series. From the moment you start playing you are introduced to new things constantly but at a steady pace - new weapons, new gameplay mechanics, new graphics, characters, situations, etc. but you are never overwhelmed by the progression – which takes us onto another aspect of variety; difficulty.
Scaling the difficulty is, in my opinion, one of the hardest design issues that you will face when making your games. It's a real headache sometimes, especially for an indie developer that doesn't have the resources to beta test a game thousands of times before release. This can be made even more complicated for indie developers as they can also be affected by “over-play”. This is when you have played your game so many times that you know its tricks and so - often unconsciously - up the difficulty to compensate. Your games should challenge the players and give them a reason to keep playing, not overwhelm and frustrate them.
The challenges you give can come in many different shapes and sizes and will depend on the style of game you make, but your ultimate goal is to leave your player happy with their progression and wanting more. This means that your game needs a difficulty curve which is what will define how and when your player progresses. This curve will be different for every game, but it should be a progression and the player must feel like they have achieved something every time they stop playing so that they want to come back for more later. In books you often see the tension or action peak in the last sentences of a chapter, giving the “impossible to put down” sensation, and you want to achieve this feeling with your game too. Games like StarCraft, Hotline Miami, and Mario do this perfectly, and you should take note of how these games deal with difficulty and progression.
To get the difficulty curve as perfect as possible, you should always try to play your game with fresh eyes, and never forget that your average player does not have the knowledge you have when playing. Also remember that difficulty isn't just based on the core gameplay mechanic, but takes into factor things like interface design, graphics clarity, sonic cues, etc. and over-playing your own game can make you blind to these details. Therefore getting your game beta tested by strangers, professionals and friends is an excellent way to get a fresh overview of the games difficulty, as each group will supply you with different insights which you can then use to improve things. You may not be able to get thousands of people to beta test the game, but even a couple of fresh experiences can help a lot.
This may seem an obvious point to make, but it's worth bearing out that games where you never lose are generally not such a good idea. The tension and excitement caused by the thought of losing a game is one of the fundamental drives behind people continuing to play your game, so you should take time to analyse the losing factors in your project and study which ones motivate and which ones discourage. Games like Diablo have a “permanent death” mode which many people relish as it makes them sweat and pay attention to the game – but to get to it you have to first pass through progressively more difficult game modes which train the player, teaching them what the losing factors are, and preparing them for this ultimate challenge.
You can use anything you want to create losing factors. Timers, bosses, mobs, traps, mazes, visual tricks – these all help to create obstacles and cause the players to pay attention, or they will lose the game. However, you should take care to balance these things as, while the player knows he has to lose at some point, he doesn't want to lose unfairly. So if you have a level with a hidden trap in it (for example), make sure that there is some graphic or sonic clue that the player can learn and, as a result of this, avoid the first and future traps to progress.
The last design value I'm going to cover here is not necessarily for everyone, but it can be applied in some way to almost all games, and will certainly enhance the player experience. We are talking about dynamic gameplay elements. A dynamic element is one that changes every time you play, and you can make this a small detail in the games atmosphere, or an essential part of the gameplay. Rogue-like games generate random everything at the start of a new game, but you don't need to be that extreme. Simple things like randomised power-up drops can greatly enhance a game, as can random events or changes. If you want a perfect example of this, then look no further than Skyrim which uses Bethesda’s Radiant A.I. to generate realistic events, like people running up to you and handing you some stolen goods, at random moments in the game. Even if it's just a random music track for each level, or a different background colour, these dynamic elements will help to maintain a player's interest and have them coming back for more. In general players like to be surprised, and don't like to feel that they've “been there and done that”, so think about how you can mix things up a bit while making your game.
Game design is definitely an art rather than a science, and like most art-forms it requires inspiration, hard work and lots of experience to get it right (and even then you might not...). However, you, as a game developer, have thousands of examples to follow and learn from in the shape of the games that others have made. When making a new game, you should always take time to look at other games you admire and enjoy which fall within the same genre as your own project - as well as those that you have disliked and hardly played - to find out what design decisions worked and which ones didn't. You should analyse how the game built its atmospher, what subtle details motivated you to play it or put it down, how did the game encourage you to continue or turn you off altogether. You can then apply this knowledge to your own projects and hopefully make your game the best it can be.