Thursday, September 21, 2006

A Guide to Game Design

Play games. No seriously, play games! You should develop your interest and knowledge of games for inspiration. Looking at other games helps you see what works, what doesn’t, what has been popular, and what has sunk without trace.
Taking inspiration from other games needn’t be a euphemism for stealing. Honest! There are times when the way a game implements something really seems like the optimum way of doing it, so why try to change it? Take the player energy bar in say, Tekken. When your character gets hit it shows the amount of damage the hit inflicted before shrinking it. Can you think of a better way of showing energy in a fighting game? If it isn’t, don’t change it!
Concept is everything. Pick your favourite game. I bet you can describe the game concept in a paragraph or so. Of course there’s lots more to the game than that, but the general premise is always pretty simple. If you’re trying to put together a design for your game (and these days they really are mandatory) then you need to be able to sum up the concept succinctly. If you can’t then the chances are that you’re trying to do something way too complicated. But more importantly, if someone can’t be bothered to read your concept, then they sure as hell won’t bother playing your game.
So you have your concept. Flesh this out to a couple of pages, including only the necessary details. At this stage you don’t need to know about the reflective particles that spray forth from the great sword when you pick up the orb of destiny, or whatever.
Don’t run off and start building the game just yet. Don’t even fire up your C compiler. You need to run it by a few folks before you start going mad and begin coding. Getting it all down on paper will help organize your ideas, and will probably highlight a few omissions on the way. Show it to your friends, and see what they think. Take on board suggestions because from here on in there’ll be lots more.
Getting started
But let’s begin very simply. You can’t plough on in there and just write a game. Even the best-laid plans will encounter some problems along the way. Implementation is the proof of your concept, and it may need altering.
So you should begin by making a test-bed, and you might have to write some tools or converters to help you. It's probably worth mentioning at this point that games are all developed on a PC, not a Mac, so getting a good PC is an important first step. To kick off with, how are you making your graphics? (Even if you’re not going to draw the final graphics yourself, you can use "placeholders" that give the gist of what you’re trying to achieve). But are you using PaintShop Pro, DPaint, Photoshop? And how are you getting the BMPs, GIFs, TIFs, TGAs or whatever into your code? A browse on the web should get you some free code that’ll allow you to decompress graphics formats, or even a paint package if you need one.
Your test-bed program should deal with the simple, yet crucial, elements of your game concept. Displaying your game, the controls, etc. Don’t be surprised if it doesn’t actually work out quite how you expected it to. This is where you can tweak it to make sure everything works and that it’s fun. Again, get other people to look at it and give you feedback.
The nightmare scenario at this point is that even after tweaking no-one thinks the game is any fun to play at all. It does happen, even with the most promising game concepts, and it’s better to find out quickly than waste even more time and money forcing it to work.
Play the game. Play it some more. Play it until you bleed. And have everyone else do the same. This is when you'll find bugs in the code, your logic and so on. You may end up changing the design, but so long as the concept remains intact you’re laughing. By the end of this stage your game play should be spot on. (Here’s hoping!)
Art & Twinkly Stuff
If you’ve reached the lucky state where your game is playing well, and the feedback from your guinea pigs is positive, then it’s about time you got some proper graphics in there. If you’re not an artist then don’t draw your own - "programmer graphics" are fine for placeholders, but leave it at that. So you need to get some high quality graphics in there, they’re not going to help the game play, but they will transform your game into something people will be drawn to.
Now is a great time to add all the superfluous, but nice, effects to your game, whether that is particle system explosions, flashy lighting, 3D effects or whatever else. And put those game enhancing sound effects in, they really are important, yet so many people just whack them in at the last minute with no regard for their quality.
Interface your game
Play the game even more. And put your user interface in. And test it. The user interface is going to vary a great deal, depending on the type of game you’ve done. If it’s some kind of point-and-click game (perhaps real time strategy) then you’re going to be using icons. They must be really, really clear.
Another aspect to user interface is your front-end. This is really important. You should assume that the attention span of games players is absolutely minimal. How many button presses does it take to start a new game? It should be as few as possible. When they fire up a game the user should be presented with a small number of choices, start game, load game, options, for example. If you have a menu with pages of different choices then you’re over-complicating things. As before, look at other games, and see how they do it.
Well, the game is pretty much there, but you need to get the levels built. Sadly this is the tedious bit. All the excitement of starting the game has gone, and the long haul has begun. But don’t despair, you’ve come this far, and you believe in your game (don’t you?).
So get to designing and building those levels. And yes, play them. Predictably you’re going to have to get other people to play them and react to their comments. You won’t design the perfect level straight away. You won’t build a level and never touch it again. Don’t even think about that, it’s not going to happen. You will get sick of your game, and especially the levels you have built, but everybody does, and the pain has to come before the pleasure, OK?
Back to Reality
You’ve been working for some time now, you’re probably swearing quite a lot, but getting this game finished is the only thing on your mind. But you have to take a moment and stand back. You can be your own worst critic, and you have to be. How good is your game? Be honest with yourself and don’t shirk the responsibility of going back and changing stuff if it needs changing! So, deep breathe now…
Once you get through this stage then treat yourself: do some more twinkly stuff, you deserve it.
Finish the bloody thing!
Fix your bugs. Tweak your code. Touch up your graphics. Clip your sound. Ensure that the game is easy to get into, and gets progressively harder. Make sure that none of your testers have died of boredom. Test it, test it, test it.
It’s all over!
The game has left your hands. It’s a tearful farewell, but you’re glad to see the back of it. Never again. Never again! But then you had this idea about a game where you’re a plumber right, and… Of course, the development of a major game probably won’t follow this exact route but it’ll certainly include all these stages in some order or other. Hopefully this has given you an idea of the complexity of what goes into making a game in the 21st century. So, do you think you can cut it?

No comments: