Summary
This module will introduce you to algorithms and programs. You will also consider the coding requirements of your game and choose a suitable game development platform to use.
Documents used in this module
- Game Design Document (GDD): Designing (Gameplay/mechanics)
Before you start
Before starting these activities, it is recommended that you have:
- Developed a basic idea of your game (see Module 3. Game Overview for guidance).
Tasks
Once you have a basic idea of your game (this could be your storyboard from the previous module) you’ll need to develop elements such as images, characters, icons, sounds, music, levels and an interface.
When considering the programming for your game, you need to think about these questions as you go:
- What happens in your game?
- How do you want your game to work?
- What do you expect someone who plays it to do?
- What are the elements you will need for your game?
- How do you want the game elements to interact and be used?
Programs control the game’s elements. They tell the game elements what to do at different times during the game in response to different actions by the game player: where, when and how to move; what points to add or subtract; what enemies to make appear or disappear; which level to load; what music or sound to play; and so on.
Programs are written with specific programming languages using either words and symbols or visual code blocks.
To design and create successful programs, developers often start by using algorithms and pseudocode.
Algorithms
An algorithm is a step-by-step instruction to solve a problem. For example, a cake recipe is an algorithm to solve the problem ‘how do I bake this cake?’
Algorithms can be explained in flow diagrams or written in words.
Example of an algorithm – game-screen flowchart
Consider these questions for this algorithm:
- What are the different outcomes? List these.
- Which outcomes have multiple pathways?
- Are there any cycles that never reach a final outcome? Can this cause an issue? Is there a way to resolve this?
Pseudocode
Pseudocode is a way to design algorithms and describe processes using plain language. It is a structured format that resembles programming logic. It is designed to bridge the gap between your planned game mechanics and the actual code you write in a programming language.
Example of pseudocode – losing a life in a game
Programs
A program is an implementation of an algorithm or pseudocode, written using a specific programming language.
Example – Block programming
Example – Python
Example – C#
Consider these questions:
- What is/are the outcomes(s) of this program?
- Which parts of the block code and the written code match?
- Which parts of the block code and the written code are different?
Developing algorithms and pseudocode
You can develop your algorithms and pseudocode on paper.
There are lots of online tools that you can use to help create algorithms. Here are two examples:
- draw.io – free online diagramming tool that allows users to create flowcharts, mind maps, and other visual representations. Does not require users to create a login.
- Canva – free online graphic design platform that enables users to create professional-quality visuals, presentations, and social media content with ease, using a variety of templates and design tools. Requires users to create a login.
Game development platforms
Before you begin programming, you need to decide which game development platform is right for your game. Check out the Information about recommended platforms table on the Challenge landing page. You need to review each platform and select one that will best suit your skills and game ideas.
Don’t forget to record which platform you have chosen and why in your GDD.
Level-up activities
You might find it helpful – especially if you’re working as part of a team – to use an online organisation tool to help manage your game development project.
There are a lot of these, including some that are especially useful for game development. Here are a couple:
- Nuclino
This app helps with the organisation of game design documents, storyboards, game assets and game development tasks. A team of game developers can collaborate on their work through the Nuclino and track their progress through the design of their game. - FigJam
FigJam is an online whiteboard app that team members can use together to brainstorm, diagram and help organise a complex project – like creating a game.