Skip to content

Design Thinking Flowchart

On this page we will learn

  • the steps for turning a game idea into a working game
  • where planning, coding and testing fit together
  • why we keep looping back to improve the game

Terminology

  • debugging – finding and fixing the mistakes in a program, for example by reading the error and checking the code.
  • play-testing – getting other people to play our game so we can find out whether it is fun and fair.

Making a game isn't a straight line from idea to finished product. We plan a little, build a little, test, and then improve. The flowchart below shows the whole process we followed for Space Rescue, so you can use it for your own game.

flowchart TD
    A([Game idea]) --> B[Decide the Rooms]
    B --> C[Draw a wireframe for each Room]
    C --> D[Annotate each RoomObject]
    D --> E[Draw a class diagram for each RoomObject]
    E --> F[Choose the next feature to build]
    F --> G[Plan the feature with an IPO table or flowchart]
    G --> H[Code the feature]
    H --> I[Run and test the feature]
    I --> J{Does it work?}
    J -- No --> K[Debug: read the error, check the code]
    K --> H
    J -- Yes --> L[Commit and push]
    L --> M{More features to build?}
    M -- Yes --> F
    M -- No --> N[Play-test with other people]
    N --> O{Is it fun and fair?}
    O -- No --> P[Choose a game mechanic to improve it]
    P --> F
    O -- Yes --> Q([Finished game])

How we used it in Space Rescue

Step In Space Rescue
Decide the Rooms WelcomeScreen and GamePlay, then DifficultySelect and ShipSelect
Wireframes, annotations and class diagrams Lesson 1 and Planning Your Game
Plan each feature an IPO table or flowchart at the start of each lesson
Code and test each feature the code and PRIMM steps in each lesson
Debug reading the error in Lesson 1, and Common Errors
Commit and push the end of every lesson
Play-test and improve Game Design and the mechanic pages

Small steps

Notice the inner loop: plan, code, test, commit, repeat. Each loop adds one feature. When something breaks, we know it's in the code we just wrote, and our last commit is a working version we can go back to.