In making your first game as an Indie developer there is a lot to think about; you have to make the graphics, the sound effects and music, perhaps you want to include artificial intelligence, physics or particle effects or any number of cool things that will make your game unique and theoretically awesome. If all of the sound, graphics and features are the soul of your game, the controls are the door that lets the player in to experience that world in all its’ phantasmagorical delight.

With this in mind, it is surprising however how even many big budget games will spend far too little time on the controls of the game. It only takes a quick look at the initial success of Konami’s Pro Evolution Soccer (PES) and the comparative failure of Electronic Arts’ FIFA Soccer games just a few years ago to see how much of a difference the controls can make. Although FIFA had some of the best sound effects and commentary, and the graphics were arguably better than those in PES, it quickly lost out to the more responsive and better organised controls in Konami’s games. It took several years before EA realised this, and once they made the positive move to improve their control system, they quickly caught up to and have been on an even or better footing against Konami since.

As an Indie developer, particularly if you’re targeting the web as a platform, you can find a whole horde of people who just clearly didn’t think about their controls. So how can you make sure that the controls you use in your game beat your competitors?

I think there are four key areas to think about when designing your controls, which combine into the ironic acronym C.R.A.P. That’s right, make your controls CRAP and they’ll be better than your competitors.

So what does CRAP stand for?


Your controls should be consistent. This might seem like an obvious statement but consistency doesn’t just mean that your jump button should always jump, it means that when you press the jump button, it always jumps the same way. Whether this means that you always jump the same distance, or like in platform games like Super Mario Bros. the longer you hold the button the farther you jump (until the maximum height), the way the computer or console reacts to your input is always the same. An example of this being done the wrong way is Mortal Kombat Armageddon for the Nintendo Wii. When playing the game, to perform special moves, gestures have to be made with the WiiMote, but either the tracking system in the controller, or the code that listens for it just isn’t able to consistently differentiate between the gestures for different special moves. This leads to a very frustrating experience where you try to do one thing, and often after multiple attempts you end up losing because the controls just didn’t work as they were supposed to.

Following this same train of thought, your controls should also be consistent with your successful competitors. If someone else has made a similar game to your idea, and it has been successful, chances are it has excellent controls, so why not use similar controls for your game? Anyone that has played your competitors game will immediately feel at home when playing your game as they already know the controls! As with any rule, there are always exceptions, and if you have played your competitors games and found that something doesn’t seem right or could be improved on in their controls then by all means go for it, it will probably make your game even better. Just be careful not to make arbitrary changes to something that has already been shown to work, it’s often unwise to try and fix something that isn’t broken.


There is nothing more frustrating when playing a game than the controls feeling unresponsive. When you’re playing a game and you press a button, you expect something to happen not in half a second but RIGHT NOW! There should be no noticeable lag between using the controls and the appropriate reaction in the game. This becomes all the more important with fast-paced or time sensitive games like First Person Shoot-em Ups, around which an entire business has been created of making controllers with faster response times to give the players that buy them ever-so-slight advantages over those without. If the game itself is the cause of lag between input and action, the devoted players that you want to play your game – the ones are likely to spend their hard-earned money on the downloadable content you create – will find another game to play instead.


When using all the different controls in your game, the player should be able to easily switch from one control to another. The controls a player will need to use the most should always be the ones in the positions on the controller that are easiest to reach, and for this reason should usually be grouped together in a way that the player can simply and easily play the game without any awkward movements. The most important thing when trying to implement this in your game is to think about how the player will need to hold their hand to press all the buttons. If one of the buttons seems awkward, can you move it elsewhere, or if necessary even remove it? Can the player easily adopt a comfortable position when playing your game for extended periods of time?


Finally, the controls should be progressive. When a player first picks up your game it should be easy for them to start playing it at a basic capacity. They should be able to learn the required controls to get through the easiest levels of your game without looking at a manual or going through lengthy and tedious tutorial levels. The bottom line is to lower the entry barrier to your game so that more people can have fun playing your game. After they’ve played the game for a while, you can introduce further controls that change the game in ways that make it more challenging for the player, but give them greater rewards, and give the player a feeling of accomplishment.

Counter-Strike is an excellent example of progressive controls; a new player starts off buying weaponry with their mouse, then moving and shooting with a combination of the mouse and keyboard. As the player gets better they may start purchasing weapons with keyboard shortcuts, which means they can leave the starting area faster and gain a time advantage over other players, and as they play more they become better at aiming their mouse at the opponents head and chest, making it easier to defeat their opponent. They become nimbler at pressing the keys and getting into cover when under attack by the enemy, allowing them to survive longer. Eventually the players who put more time in will be able to make more accurate shots faster while avoiding their opponents’ bullets and their time spent is continuously rewarded by reaching the top ranks in the scoreboard after each round they play.

Next time: An introductory tutorial to haXe game development in FlashDevelop. (It’ll be much better than this!)