Functionality List & Software Testing

May 17, 2010

Gamemaker – Bridging the gap between your game design document and the code blocks

Before starting to write any code in Gamemaker  it is good practice to consider all of your game’s objects, actions and events  from a purely functional point of view and describe them first using natural language.

By doing this you are breaking what can be a complex process into two simpler sets of activities.  You can also then test how well your code blocks match your list.  In this way you are carrying out basic software testing for your project, where problems are identified and resolved using a structured approach.

For example, say your game design involves a space ship flying through an asteroid field and the aim of this level is to navigate safely through the field, the ship can move in any direction and blast asteroids with its laser canon.

Space ship functionality list

  • Create using spaceship sprite
  • Speed
  • Random starting position at bottom of screen
  • Direction controlled by user keyboard arrows
  • Makes space ship flying sound
  • Change sprite according to arrow key
  • Collision with asteroid
  • Spaceship collision explosion
  • Fire laser
  • Destroy asteroid
  • Play asteroid explosion
  • Increase score for every asteroid hit
  • 3 lives
  • Count lives lost
  • Achieve level sound
  • Fail level sound

Having thought out all the actions and events associated with your spaceship object you can now create them in Gamemaker using the appropriate code blocks and variables.  Test your code, note any problems and revise the logic of your list or change the code block.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: