0% found this document useful (0 votes)
3 views

Coursework

Uploaded by

kemac79945
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Coursework

Uploaded by

kemac79945
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

Analysis

Outline
For this project, I intend on creating an “Angry Birds”-esque game called “<HAVEN’T DECIDED
ON A NAME YET>”, which blends together the tower defence and “shoot ’em up” genres, with a
distinctive pirate theme. It will consist of a ship protecting itself from enemy pirates, armed with
different types of weapons depending on their type. The player will control a cannon and be
able to fire cannonballs to kill these enemies before they can destroy the ship. The game will
last until the ship takes sufficient damage to be destroyed, and over time the enemies will grow
stronger, quicker and faster, forcing the player to adapt.

Over a playthrough the player will accumulate points, which they can redeem for boosts and
powerups. Disasters will also be present within the game, such as strong waves which can both
damage the ship and kill multiple enemies, which can bring much unpredictability and
replayability to the game due to their complete randomness.

The main game will also be accompanied by a home screen, where settings such as volume and
difficulty can be altered. A leaderboard will also be present from the home screen and at the
end of every playthrough; high-scoring players will be able to type in their name and have their
score be saved when the game is closed and reopened.

This game will have many features present in tower defence games, such as a home base which
needs to be protected (the ship), enemies that can damage the ship, the ability to repair the
ship mid-game, and increasing difficulty as the game progresses. The “shoot ‘em up” features
are unique for a tower defence game, as the player can also fight back against the enemies,
while the majority of tower defence games give exclusive importance to repairing and upgrading
the home base. This mixture of genres will allow for a visible twist that players will recognise,
while also appreciating themes similar to the games they already recognise.

For this game to come to life, a score will need to be shown for the user, as well as a progress
bar which allows them to see how close they are to the next power up. A cannon which acts like
a projectile will need to be constructed using concepts from physics, and moving enemies are
needed to allow the game to be fully interactive.

Suitability for Computational Methods


Due to the scope of the game and its physics-based foundations, this project is well-suited to
being solved using computational methods. These include:

Thinking abstractly: The game as a whole can be easily abstracted to only include the
absolute necessary details, which will serve as the core foundations of the game and will be
given extra focus and depth due to their core nature. Extra details, such as graphics, music,
audio and sprites can be added on as development progresses, and other details of the problem
can be ignored entirely to streamline the process. Examples of abstraction that can be used in
this project include:

 A cannonball modelled as a projectile which starts at a fixed position when thrown. As it


moves under free fall, mathematical variables and constants such as acceleration due to
gravity and horizontal velocity can be used to model its trajectory, until it hits an enemy
or the ground, after which it will vanish;
 Enemies will have a numerical health value, which when dropped to zero, will cause
them to “die”, or vanish;
 A stationary ship serving as the home base with a similar health mechanic – when
destroyed, the game will end;
 Removing 3D features to make the game fully 2D;
 Using multiple enemy sprites to correspond to each enemy type, one fixed ship sprite,
one cannon and cannonball sprite, a fixed background sprite, fixed button icons, and a
fixed font set which will be used across the game;
 Making the camera stationary with a fixed size, where the entire game takes place.

Thinking ahead: Looking at the key inputs and outputs, and how an input can be converted
into an input through a given method is essential, and for a game like this it is very simple to
determine the key criteria needed for create the game:

 The inputs will be the keyboard and the mouse – the user can move the mouse to
control where to aim and fire the cannon, and to select buttons on the screen to
navigate through the game. The keyboard will also be used for certain actions like using
a powerup, and can also act as a shortcut for using the mouse to click a button;
 The physical outputs will be primary visual, with the game window where the game
takes place, as well as sound effects and music for ambience;
 A score system will be used as the primary output for the user, which corresponds to
their actions in the game. They will aim to survive as long as possible to maximise their
score and climb up the leaderboard;
 To devise the solution for this problem, Pygame will be used as the game engine, which
uses Python.

Thinking procedurally: This allows for the overall structure of the problem to be observed
and the solution to be broken down into procedures and methods that can interact to create a
fully modular game. Since the game is made up of one primary game loop, this makes it ideal for
a procedural approach, as shown in the decomposition diagram below:
<GAME NAME>

Game state Scoring Leaderboard Settings Menu Graphics

Survive for set


Control cannon Input name Volume Play Ship
amount of time

Redeem for
Projectile cannon View name &
powerups / Difficulty Adjust settings Cannon
and bullets score
boosts

Reedem for ship Store data in


Protect ship View leaderboard Enemies
health external file (.csv)

Link to
Use powerup /
leaderboard after Background
boost
end of game

Natural disasters Buttons

Procedurally-
generated UI & Text
random enemies

The primary aspects of the game that need to be solved, in order of their development, are:

 Game state: The primary game loop the user will be engaged with. Encompasses
handling user input with the cannon, modelling projectiles using physics, the ship home
base mechanic, powerups and boosts, natural disasters affecting playthroughs, and
generating and handling random enemies. This area will be tackled first during
development as it takes up the bulk of the game
 Scoring: Increasing the score is the user’s primary goal in the game, which is linked to
time survived, and can be redeemed for powerups, boosts and ship health. High scores
can also be posted on the leaderboard. This area will be developed alongside the game
state during development
 Menu: What users will see at the start of the game, with 3 buttons corresponding to 3
different aspects of the game: the main game loop, the settings and the leaderboard
 Leaderboard: The usernames of high scorers and their score can be shown, and after
high-score playthroughs users can opt to add their name and score to the leaderboard.
The data will be stored externally in a .csv file so it can be retrieved after the game is
closed and reopened
 Settings: Variables that can affect the game state can be adjusted using sliders and
buttons, which the user can interact with using their mouse. This will provide some
depth to the game alongside the primary game loop, as it increases the game’s scope
 Graphics: Consists of the sprites, files and aesthetic that will be needed to add the
finishing touches to the game, and significantly improve the user experience. These
graphics will be added at the end of development
Thinking logically: Since the game revolves around a series of conditions that define the
start and end of a playthrough, and how a playthrough evolves over time, this game is ideal for
being centred around selection:

 A “game state” variable will define what part of the game the user is currently on, e.g.
the main menu, primary game loop, settings etc., which will be used to control what is
shown on the game window;
 Once the health of an enemy reaches 0, it will die and vanish from the game;
 Once the health of the ship reaches 0, the game will end;
 If the difficulty setting is set by the user to low, there will be fewer enemies with lower
health, and vice versa if set to high;
 If the score of a playthrough by the end exceeds one of the 20 scores in the leaderboard,
the user can opt to add their score to their leaderboard.

Thinking concurrently: Since the main game loop revolves around many factors working
together at once, this game is well suited for developing solutions in a concurrent way, with
multiple problems being solvable at the same time or directly alongside each other:

 Creating a projectile object, which can be controlled using physics, using object-oriented
programming (OOP henceforth) can be applied to both the cannonball and the bullets
that enemies fire at the ship;
 In the main game loop, every frame a new background is drawn, alongside the enemies,
ship and cannons with their respective positions;
 Sound effects and background music can be played at the same time using multi-channel
audio.

In conclusion, these examples demonstrate that this game is very well-suited to being solved
using a wide variety of computational skills, from abstraction to procedures, in the form of a
computer program. This allows for the solution to this problem to be well-structured, as this
game can be tackled in small chunks which can be brought together at the end for a cohesive
final product.

Stakeholders
Given the game’s pirate theme and its similarity to other games like “Angry Birds”, the visual
style will be quite cartoony and light-hearted, with bright colours and over-the-top animations,
and as such it will be very detached from real life. Moreover, there will be no voice lines and
instead just ambient music and sound effects, and as such this game will be primarily targeted
towards younger audiences, of ages 3-18, who would appeal to the comical style. This game
would very likely achieve a PEGI rating of 3, due to the cartoonish theme and very mild violence
that would not scare children.
Since the marketed audience of children and adolescents nowadays largely use mobile devices,
e.g. iPads or the Nintendo Switch, the game will also be designed to accommodate this, such as
with the ability to drag when choosing the trajectory of the cannon, and having a grey outline
acting as a preview for where the cannon would land if fired. However, due to restrictions on
the scope of this project, this game will be created only for PCs, and as such it will played using a
keyboard and mouse – the game can still accommodate these mobile features, such as by
replacing what would be a touchscreen with the mouse as much as possible, so that it could be
adapted to mobile devices very easily.

By adapting the mechanics of the game towards a generation that largely uses mobile devices,
this will allow it to open up to a much wider audience.

Research
This game will be a blend of the tower defence and “Angry Birds” style puzzle games, so I will be
researching the game Angry Birds 2.

Angry Birds 2 (2015) is a puzzle video game where the player launches birds from a slingshot to
hit enemy pigs. The goal is to hit all the enemy pigs in a certain level before the player runs out
of birds to launch. If they do so, they beat the level and gain a certain amount of stars based on
their performance, and if they don’t they lose, and must replay the level.

The game is a side-scroller which takes place from a third-person perspective, with a non-fixed
camera that moves with the bird as it flies. The bird flies like a projectile and its motion is based
on physics, which the player must take into consideration when considering the angle and
power it is fired at. The enemy pigs can also be protected via wooden and stone structures, that
need to be destroyed first before the pigs can be hit. This provides an extra layer of depth and
an extra challenge for the player. When these buildings and enemies are destroyed, they
explode spectacularly with lots of noise and animations, which makes it appealing for younger
audiences, alongside the bright colours and cartoonish characters.

The game is composed of a series of static levels, with each level building on the next in terms of
difficulty and depth. With each progressive level, the enemy pigs are placed further away from
the slingshot, are protected by more elaborate structures, and the player is given fewer birds.
These birds also have many different types, with their own advantages and disadvantages. For
example, while the blue bird can split into three clones, each individual bird has very little
impact on structures on their own. This gives the game lots of variety and flavour, as the player
must adapt to the pros and cons of each bird respectively to beat a level.

Other features of the game include:

You might also like