18
P3, P4 – Developing and programming a working game simulation Narrative The plan for the game I am trying to create is called Flappy Bee and is a reincarnation of the famous game on the app store called Flappy bird, testing will be carried out in two different methods. These are: 1. Black box testing – This method of testing is when the person testing the game is kept in the dark and knows nothing of the design, structure or the code. 2. White box testing – This is the method of testing through which the person testing the software knows the design, structure or code used to create the game. Approximately 6 people were assigned to test my game and all of them gave me feedback. Reason for testing Expected result Actual result Possib le fix Evidence of test To see if the pipes function as intended For the pipes stay true to their position Pipes remained in the position they were set in. N/A UNIT 22

galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

P3, P4 – Developing and programming a working game simulation

Narrative

The plan for the game I am trying to create is called Flappy Bee and is a reincarnation of the famous game on the app store called Flappy bird, testing will be carried out in two different methods. These are:

1. Black box testing – This method of testing is when the person testing the game is kept in the dark and knows nothing of the design, structure or the code.

2. White box testing – This is the method of testing through which the person testing the software knows the design, structure or code used to create the game.

Approximately 6 people were assigned to test my game and all of them gave me feedback.

Reason for testing

Expected result

Actual result Possible fix

Evidence of test

To see if the pipes function as intended

For the pipes stay true to their position

Pipes remained in the position they were set in.

N/A

To ensure the boundaries of the level acts as a game over zone if the bee flies out.

For the game over sign to be displayed if the bee falls or flies out of the boundaries

The game over sign was displayed at the correct times.

N/A

UNIT 22

Page 2: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

To see if the player loses

when the Bee touches the

pipes.

The Game Over screen should be displayed once the player makes the character touch a pipe.

The Game Over screen was expected at the correct point

N/A

The people who I assigned to test were checking for all types of program bugs or to see if the game crashes.

Introduction

The game I have created is called Flappy Bee. This game was invented by Dong Nguyen and was the biggest mobile game craze of 2013. The objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing a point to the gamer. I have also implemented a score counter which outlines a user’s score in the form of numbers with an increment per pipes passed by 1.

The reason why I chose to make this game is how much I enjoy playing the game and how much I would like to share my own unique version of this game with other people.

The score counter that was added was designed to allow the user to keep track of their highest score and will allow the user to also challenge his/her personal best

Design tools used to make my game

Narratives

Game Overview

The main objective of this game is to create a game where

The user controls the Bee by pressing the space bar button in a sequence at the right time, this will allow the bee to fly between the pipes and score a point for each 2 pipes passed.

This game is being targeted towards the audience of 7+ The genre of my game is a 2D arcade style game. The game I have created is being targeted towards 7+ due to the fact of the game

being brightly coloured with very bright pleasing images, visually this is very appealing to the user and will make them want to play it.

The game I have created doesn’t require the user to be very skilled, all it requires is a little timing and good hand eye coordination.

Page 3: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

Gameplay and mechanics

Mechanics

The rules of the game are to fly between the pipes gaps without flying outside of the games boundaries.

Only one button is required to play this game and that is the space button, one press of the space button initiates a small wing flap which brings the player a little higher on the map.

If a user hits one of the pipes or flies out of the map it is game over and the user must start over again.

Gameplay:

Setting and character

The games setting, I have chosen to use is from an anime called One Piece and is a mythical place known as Sky Island.

The character the user is required to use is a Bumble Bee. The games setting remains the exact same throughout the entire game and only

changes once the user has lost, when this happens the user will receive a game over screen, as shown below.

Page 4: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

Pseudo code

The design tool which I used to plan for my stage of my game is a pseudo code in the form of a flow chart. What this accomplishes is it roughly outlines the basic functions and mechanics of the game in the sense of how the user will be able to progress through the stages. The flow chart shows what button is required to fly the bee and what will happen if the user makes the Bee touch a pipe, fall or fly out of the map. It will also show that for every gap between the pipes the user is able to pass through they will receive one point.

Flowchart

Start

Press space to move the Bee

Touch green pipe

Yes

No

Add a point

Game Over

NoYes

Page 5: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

Design and Descriptions of different stages in my game (P4 and P6)

Purpose:

The purpose of this game is for the user to guide the bee through the game while accumulating as much points as possible. The user is required to allow the bee to fly through the map by guiding the bee between the gaps and preventing the bee from hitting one of the pipes or flying/falling out of the map. This game is supposed to be a similar version of the 2013 hit sensation Flappy Bird.

Modularity:

The basic premises of what modularity is basically defining how much of a system is set up into independent components that can be joined together. My game will inherit many numerous forms of modularisation; the code I have created has been slit up into five sub classes that work separately as shown in the screenshots below. The advantages of using modularisation is its easier to pin point any issues with your code as the only part where the error is affected.

Page 6: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

Systematic Approach

The systematic approach of my game is to ensure it functions as it should, and it can be repeated. The measures that have been taken to ensure my game runs as expected is that I have tested it multiple times by playing it normally and often trying to cause a fault in the game. The fault tests I have tried consist of purposely flying the bumble bee into different point on the green pipes. To test if the game functioned as intended I played the game normally and passed through the pipes to see if the game would add a point each time. As shown in the screenshots below:

Faulty Testing:

True Testing:

Page 7: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

Data Dictionary

Field Name Data Type PurposeFlappyWorld Size Integer Enables the user to edit the

size of the world Gameover Boolean Tells the player when

they’ve lostPipe Size Integer Allow the user to change the

size of the pipesScore Integer Tells the user how far they

made it Player Boolean The character the user uses

to play the game

Parameters Passed

The word parameter refers to a special variable used in computer programming language. The purpose of this variable is to pass the information between different functions and procedures. The information they are passing is known as an argument.

Return values

A return value is simply the information the computer sends back to you depending on the system it creates, for example if the system is given an equation such as 4-8, the return value would be -4. This varies based on what you input. Below is an example of “Return Values” within my code.

Visibility

This refers to the different subclasses that are public and private which I used when creating the mechanics of the butterfly’s movements. I display this in the table below.

Field Name Visibility Purpose Flap = 1.5 Private Determines how high each

space bar press allows the user to fly.

yVel+ = 0.02 Public Not pressing the Space key results in “Game Over”

Old space = false Private Returns the player to his/her old space after they fail.

OldTouchingPipe = false Private If the user touches a pipe they fail.

Scope

The scope refers to the location within a program an object can access data. This is known as the visibility of the variable. Most variables have a global scope; my code is split into several subclasses so it is not a global scope.

Page 8: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

Development facilities

The development facilities I used to create and test my game are my college’s desktops, Greenfoot and my pc at home.

Menus

The menu feature is simply a home screen for a game and usually includes options to change games settings like the display, audio or sound and includes features such as a button to initiate the game or options to view the controls. The menu feature is not included in my game as the game I have created does not require a menu. An example of a video game menu can be found below and is the menu of Kingdom Hearts 3.

Built in help facilities

Greenfoot consists of help facilities that come with the application. It mainly works as an error corrector by pointing out errors the coder made and allows them to be located easily by highlighting the line in which the error can be found. It also consists of common problems that may occur which can help users.

Page 9: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

Building or Compiling Code

This feature is already implemented into green foot and is used for checking errors after the coder runs his/her build. After I finished writing my code, I compiled it to check if the code was correct and would run as intended.

Saving file

I placed all components of my game within one zip folder labelled Flappy Bee

Small unitary code blocks

These are small blocks of codes that each have different tasks and operate on their own; these can be deleted and duplicated whenever.

Suitable comments

Within my code I placed sentences that the code would not recognize or compile and thus be unable to read. These sentences were placed solely with the intention of helping the user/player to understand the code and be able to make necessary edits if needed.

Page 10: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

Descriptive Identifiers

This refers to the variables within my code being as accurate as possible to their description. This helps prevent any confusion in the sense of knowing which variable is which. The variable names my code contains are accurately displayed to help prevent any form of confusion.

Functions of the first subclass in my code

The purpose of the first part of my code is titled Flappy World; this is done to allow the adding of all the various sub classes to my code for the creation of my game. This allows me to determine variables exact size and exactly where I want them to be positioned.

Produce user documentation for a computer game and Produce technical documentation for a computer game. P6 & P7

User Specifications

The game I have created may be downloaded and played by any individual with a desktop or laptop capable of downloading Greenfoot or using a web browser.

The purpose of my game is to: Provide the user with enjoyment by playing the game and provide a test for the player that tests their skills on getting a score as high as possible.

FAQ’s

1. “How do I Start the game?”

Answer: Select Run.

2. “How do I play? “

Answer: Press Space to flap as required and guide the Bee through the pipes.

3. “How do I Restart?”

Answer: To restart the game select Restart or refresh the browser

4. “How do I Lose?”

Answer: Losing can happen in one of two ways

A.) Going out of bounds – this includes falling or flying outside the boundaries on the map.

B.) Touching the green pipes

5. “What’s my score?” Answer: A player gets a point for every gap between pipes they pass through successfully.

Page 11: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

M4

Suggest improvements to a computer game following user feedback

To test how well my game operates I allowed several people to fully test play it and tell me any flaws or things they may have enjoyed about my game. I then proceeded to ask them several questions about their experience with my game. All questions asked and feedback received can be seen below.

Was the game easy or hard to play?

1. I was under the impression that the game would be easy but as I went along I realized it was far from that. I would press the flap button (Space Key) and the Bee would fly way to high making it nearly impossible to dodge some of the closely spaced pipes.

2. The game was generally hard and would require someone who knows the exact intervals of when to press the jump key to even receive a remotely high score.

3. It was a simple game with a simple objective.

Was it easy or hard to learn the controls?

1. The controls were simple as there was only one button the user needed to press to play it.

2. The controls were simple but it didn’t make up for how hard it was to press the space key at the right time.

What didn’t you like about my game?

1. How difficult it was to achieve a score higher than five.2. When pressed the space key made the bee initiate a flap that was too high to control,

making it hard to fly through the pipes.3. Sometimes the game would freeze or show signs of frame dropping.

How enjoyable would you consider my game to be?

1. The pipes were always located at random points so it made it hard to predict what was coming up.

2. The game was very colourful which made it visually pleasing.3. The distance of the pipes was very challenging and so provided for a fun experience.

Conclusion

Due to the feedback I received from the people who played and tested my game I can safely say my game met all the requirements needed to be a success, it had the ability to keep players engaged for a good amount of time, provide enjoyment to people and also allow people to socialize with their friends about it by competing to get the highest score. With all this being said there is still room for improvement in that being, equipping the pipes with bigger gap spaces, toning down the flap of the bumble bee so it does not fly as high after each press of the space key.

Page 12: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

User Interface

The user interface implemented in my game is very basic and runs through the means of green foot when installed on a computer or the web browser. The work I have provided throughout P4 also shows the interaction between the user and the interface.

Action Chart

This chart basically shows the effects of what an action would have on a program. My flowchart displayed earlier in this document shows the actions of all the possible moves that may be made throughout my game and its effects it will have on the game.

Action Table

An action table is just another way data may be represented, an example of this may be found in my data Dictionary located in the document above.

D2 Explain how the structure and design of a game can assist in maintenance and capacity for extension

Code Commenting

Code Commenting is comments made within the code by the Coder and is designed to help the user or coder to understand what is happening throughout their code. These comments are not compiled and thus not read in the build, this means they have no effect on the code that is to be run. Code commenting is usually used to explain complex parts of the code or to tell the user what a specific function is trying to achieve. I used Code commenting to allow the user to understand what is happening throughout various stages within my code.

Variable names and naming conventions

Variable names should be relative towards what the variable is trying to achieve, this allows for easier maintenance and expansion. Naming your variable appropriately can save a lot of time due to the user not having to surf the code trying to remember what he/she labelled her variable as. Good variable names result in the coder not always having to place code comments, as if the variable name is easily understandable it requires no explanation. This will also make it more efficient for the user to locate and change bugs if needed.

Modularisation

Modularisation is the process of separating a computer program into multiple sub-parts, that when linked together all perform a variety of different functions and applications. The idea of modularisation within my code is to allow for more efficient maintenance and expansion within the code. With the use of modularisation, it allows me to go directly to where I would like to edit without having to surf through other useless code.

Page 13: galaxysend545267592.files.wordpress.com€¦  · Web viewThe objective of this game is to control the bee by allowing the bee to fly between the gaps in the pipes with each one providing

Improvements I Have made after integrating feedback received from players/testers

Throughout the process of testing my game I allowed a number of people to play it and give me feedback on what they thought about it. I accepted their feedback to give myself pointers towards what may be needed to be changed within my code to allow for a more enjoyable experience for the user. Some of the complaints which I received were that the spacing of the pipes was to close and the height of what the Bee flies when the player presses the space key was too high.

To conclude my project, I believe that I have created a well-made simulation of the game Flappy bird and customized it in a very unique way. I believe the game is suitable for all ages and can be enjoyed by anyone, due to the fun and competitive aspect of the score system I implemented within my game.