Upcoming Events
Unite 2010
11/10 - 11/12 @ Montréal, Canada

GDC China
12/5 - 12/7 @ Shanghai, China

Asia Game Show 2010
12/24 - 12/27  

GDC 2011
2/28 - 3/4 @ San Francisco, CA

More events...
Quick Stats
89 people currently visiting GDNet.
2406 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!
Link to us Events 4 Gamers
Intel sponsors gamedev.net search:

  Contents

 Introduction
 The Very
 Beginning

 The First Design
 Setting Things Up
 Conclusion

 Printable version

 


  The Series

 Part I
 Part II

 

The first design

When 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.

Introduction

This 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 specifications

You 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
16 Megabytes RAM
3 megabytes free of disk space
DirectX compatible video card
Windows 95, 98 or 2000

Rules of the game

This 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.

Menus

This 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 New game option takes the game to another menu where the player chooses the difficulty level and a single player or two player game of Ping. After the selection the player is taken to the actual game.
  • The High score option will show the high score table.
  • The Credits option will show a scrolling credits text with all the credits for the game.
  • The Quit option will ask the player if he or she really wants to quit and based on the response it will quit or not.

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.

  • The Continue game option will return the player to the game.
  • The Restart game option will restart the game with the present options.
  • The Forfeit game option will end the game and take the player to the main menu.

Graphics

All 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 engine

Usually 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.

Controls

Usually 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 Intelligence

For 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.

Schedule

This 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.




Next : Setting Things Up