The first designWhen I first started, I developed games that I had never designed myself. It was boring and I didn’t like it (and still don’t like to do it), and since I knew the game in my head I had no problem programming it. I was completely wrong in my development methods. Designing a game will make us think of all the irrelevant aspects of the game that we only remember after doing those 500 lines of code to realise you need to change the structures and with that, the last weekend's work is going to the Recycle Bin. Even though Pong is a relatively a simple game, we will still make a small design document just to have the basic game worked out on paper, not just in our heads. Again, if you have your own design templates you don’t have to use mine. I like designing like this because it is more natural for me to think of a game like this. This model works well for a team of 1-2 programmers for a relatively simple project; for more a complicated game another type of design document is recommended since it will have to be divided in parts and all. check GameDev.net's design section for some tutorials how to make your own design documents. IntroductionThis is a small introduction to the game. It’s a short description to give someone an idea of what the game is Ping is a Pong clone for the Windows platform using DirectX for graphics and input. The player has control of a space ship where he enters a playfield to play against another player (human or computer controlled) and tries to make the ball pass the goal area. Minimum specificationsYou can probably neglect this part of the design document, but I put it here because it is an important point in a more complete design document Pentium 166 Rules of the gameThis section generally is featured in a Gameplay section of the design document. For such a small game it can be a separate section of its own The rules for Ping are very easy and straightforward. The objective of the game is to score a goal, and to do this, the player needs to make the ball pass the goal line of the adversary while trying not to let the ball pass its own. Each spaceship can only move in the vertical direction within the bounds of the playfield. MenusThis section should be divided into subsections for the sake of comprehension. Again, for such a simple game, it can all be described in one or two paragraphs The main menu will have 4 options: New game, High score, Credits, and Quit. An image of a Ping game is shown in the background.
The Ingame menu will feature only 3 options: Continue game, Restart game, and Forfeit game, and will also serve to pause the game. The Ingame menu will appear in a box on top of the game screen.
GraphicsAll the graphics of Ping will be from SpriteLib. All the backgrounds will be done in a paint program or will feature some kind of demo effect like a space field or plasma. Graphical engineUsually this is a separate section of the design document Ping will feature a really basic graphical engine. It has to be able to load images from disk, blit from surfaces to other surfaces and handle smooth movement. The text functions will be done using GDI (Graphics Device Interface). Even though this is not the fastest option it will suit the basic text output needs of Ping. ControlsUsually the player has the choice to set his own controls, and here the actions supported by the controls are described Controlling the spaceships in Ping is pretty easy. The first player has two keys, Up and Down, to move the spaceship up and down. When present, the second player will use A and D for the same purpose. Artificial IntelligenceFor larger projects I like to also make a separate design document for artificial intelligence, but Ping doesn’t need one Ping will feature 4 difficulty settings, Easy, Normal, Hard, and You’re nuts. The computer controlled ship will calculate the collision point where the ball should hit the ship and move there, the accuracy of the calculation is determined by the difficulty settings, which add a randomness in the tracking algorithm according to the difficulty. ScheduleThis is where usually the most problems occur. Almost no one can exactly make an exact schedule for a game, but it should feature the time for each part that must be developed Even though Ping needs a schedule as any other game should, I’m not making one because I’m only devoting time to it when possible. Since developing the game and writing these tutorials is more time consuming than just programming the game I chose not to have a schedule. And this is the end of our design document. It’s not the best design document but it will help us out a little when developing Ping. |
||||||||||||||||||||