web viewarts media & enterprise; cross college assignment brief –part 1 of assignment 2....
TRANSCRIPT
Arts Media & EnterpriseCROSS COLLEGE ASSIGNMENT BRIEF –PART 1 OF ASSIGNMENT 2
COURSE Creative Media Production (Games Development)
AWB QUALICATION BTEC 90 Credits
UNIT – NO & NAME Unit 22: Developing Computer Games LEVEL 3
ASSIGNMENT TITLE Designing a Game, Create and Test and Document
LECTURER/ASSESSOR Oluyemisi Oduyeye
ISSUE DATE 25 of May 2015
INTERIM SUBMISSION FINAL SUBMISSION 26th of June 2015
Student declaration:
I declare that this assignment is all my own work and the sources of information and material I have used (including the internet) have been fully identified and properly acknowledged as required.I understand that plagiarism of any kind will not be tolerated, and may result in grades being revoked and that I may be subject to disciplinary action
STUDENT NAME SIGNATURE
ASSESSMENT DETAILS & GRADING CRITERIA
VOCATIONAL CONTEXT/SCENARIO FOR ASSIGNMENT (See specification guidance)
The Game-Space Attack
In this game you are shooting down aliens flying in space. You encounter an increasing number of aliens that are invading the planet earth. You should prevent their aircraft from landing by shooting the aircraft. The goal is to avoid any of the alien aircraft from landing. Game is over when the alien aircraft lands.
Game objects
Aircraft -The aliens fly in space.
Bullets - You can fire bullets that destroy the aliens before they land their aircraft.
Gun/cannon/shooter – To target aliens in space
Sounds ( four different sounds)
When the game loads. Whenever a bullet is fired. When an aircraft is hit and when an alien lands their aircraft to signify end of game.
Controls
Left and Right arrow keys to move the gun to the left or to the right. A bullet is fired with the space key.
Game flow
The player immediately jumps into the game. Pressing a button (help) will give a brief explanation. Pressing the close
button will end the game. There is also an option to pause the game.
Aim and purpose
The aim of this unit is to ensure learners know about different types of computer game, understand the impact gaming has on society and are able to design, develop, test and document computer games.
Learning outcomes
On completion of this unit you should:
1. Be able to design and develop computer games2. Be able to test and document computer games.
Task 1 P4 ,P6, M2
Produce the computer game. Operation of the game will be evaluated by witness statement.
The game specification:
Minimum of four screens (start-up screen, narrative, the user guide and the game)
Have keyboard or mouse controls
Have levels of difficulty- ( increasing the speed)
Have a method of scoring
Provide a simple narrative to engage and retain the player
Be easy to maintain and extend
Have an opening menu that explains the controls
Have a suitable background (terrain)
The player should have an opportunity to pause or end the game
GRADING CRITERIA: P4 -Develop a computer game for a given specification
P6-Produce user documentation for a computer game
M2- Use appropriate selection and iteration methods for a computer game
EVIDENCE- Submit: P4-Code listing of your Game and Witness Statement
P6-On screen user guide
M2-Explanation and evidence of the use of sequence, selection, the levels of difficulties and iteration in your program
Task 2 P5, M3
Using the test plan template provided in Moodle, produce a test plan and a test log for your game. You need to consider the list below.
Test for form load with the menu
Is the shooter visible when the form loads?
Test object- aliens, bullets, player (shooter)
Can shooter move to the right when the right arrow key is pressed
Can shooter move to the left when the left arrow key is pressed
Does the shooter stop moving when key have been released?
Hit detection- is the bullet in line with the gun?
When a target has been hit- does the scoring show?
Can the game be paused?
Can you end the game?
Test for key press sound, background sound and when a target has been hit.
Run the test above and document any problems in a log.
Submit: Test Plan and Test Log
GRADING CRITERIA: P5- follow a test strategy to test and debug a computer gameM3- Use a variety of testing tools
EVIDENCE- Submit: Table with list and description of various game genres.
Task 3 P7,M1
Produce a technical documentation for the game (Use the templates provided in Moodle). This must include:
Data dictionary (the purpose, type and use of each variable)
Control methods (selection, iteration)
Action table
GRADING CRITERIA: P7-Produce technical documentation for a computer game.M1: Determine appropriate data types for a computer game and show how they are declared
EVIDENCE-Submit:
For P7
Data dictionary (complete the first three columns of the template)
Control methods
Action table.
For M1
Complete all columns of the template
Task 4 M4
You must get one person to test your game and collect feedback in order to suggest improvements. Evidence should include the user feedback (the template can be found in Moodle).
A short report that explains what improvements you could make to your game (you don't have to make the improvements) in response to the feedback you have got from your "game testers" (you must include their feedback in your report). Explain why each suggested improvement would actually improve the game.
GRADING CRITERIA: M4-suggest improvements to a computer game following user feedback.
EVIDENCE- Submit: a short report suggesting some improvements to the game
Task 5 D2
Using examples from your game design, Explain the benefits or advantages /limitations or disadvantages of:
Design : Storyboards (for the scenes and screen layout)
Program design : Data Dictionary
Develop : Use of comments (within the codes)
Coding : Syntax rules for the language, write small blocks of code(functions), code indentation
Data representation: declaration/ assigning variables/ using appropriate variable names
GRADING CRITERIA: D2- Explain how the structure and design of a game can assist in maintenance and capacity for extension.
EVIDENCE-Submit: Notes on how the structure and design of a game can assist in maintenance and expansion of your game.
FOR OFFICE USE ONLY
Date assignment brief IV’d/IQA’d prior to distribution
Name of IV / IQA
Name of Lead IV / IQA
Arts Media & EnterpriseFORMATIVE ASSIGNMENT FEEDBACK SHEET (FOR INTERIM SUBMISSIONSONLY) – PART 2 OF ASSIGNMENT BRIEF
ASSIGNMENT TITLE
Designing a Game, Create and Test and Document
UNIT NO 22
AWB QUAL TITLE
BTEC National UNIT NAME Developing Computer Games
ISSUE DATE INTERIM DUE DATE
SUMMATIVE DUE DATE
ASSESSOR Oluyemisi Oduyeye
STUDENT NAME
TARGETTED GRADING CRITERIA
FOR PORTFOLIO USE ONLY
INTERIM / FORMATIVE FEEDBACK TO LEARNERPAGE/SECTION WHERE
EVIDENCE SEEN IN PORTFOLIO
Strengths:
Areas for development:
LEARNER FEEDBACK
Signed (Assessor) DateSigned (Learner) Date
Please note this form should only be given for interim / formative feedback not for the final /summative feedback particularly for new generation BTECs
Arts Media & EnterpriseSUMMATIVE ASSIGNMENT FEEDBACK SHEET – PART 2 OF ASSIGNMENT 2
ASSIGNMENT TITLE
Designing a Game, Create and Test and Document
UNIT NO 22
AWB QUAL TITLE
BTEC National UNIT NAME Developing Computer Games
ISSUE DATE 25/05/15 DUE DATE
26/06/15 SUBMITTED ON
26/06/15
ASSESSOR NAME
Oluyemisi Oduyeye
STUDENT NAME
GRADE
TARGETTED GRADING CRITERIA
CRITERIA MET
FOR PORTFOLIO USE
FINAL / SUMMATIVE FEEDBACK TO LEARNERY N
PAGE/SECTION WHERE
EVIDENCE SEEN IN PORTFOLIO
GC
GC
GC
LEARNER FEEDBACK
KEY: Y = Yes, N = No
Signed (Assessor) DateSigned (Learner) Date
Please note ALL grades given are provisional until internal verification processes by College staff are completed, and where awarding body sampling has been completed. Should there be a change to your grade you Assessor will inform you.
Date for Resubmission (approved by Lead IV/IQA) 1 resubmission ONLYResubmission Received DateNew Grade Awarded
NB: Where work is resubmitted please complete a new feedback form and attached it to the original the feedback form for resubmission should indicate the learners final grade. Feedback sheets must be kept with all learners submitted work, and should be reviewed via internal quality assurance / internal verification
Witness statement
Learner name Freddie Sidaway
Qualification Creative Media Production (Games Development)
Unit number and title Unit 22 Developing Computer Games
Assignment Design and develop a computer game
Description of activity undertaken (please be as specific as possible)
Produce the computer game.
Assessment and grading criteria
Evidence Description Witnessed Date
Start screen The start screen has a nice background, the name of the game is clearly labelled and the button is clearly visible
Abdullah Muhammad
26/6/2015
Explanation of controls Controls are easy to learn, instructions are clearly stated and explained in the ‘UserGuide’ and ‘Instructions’
Abdullah Muhammad
26/6/2015
Mouse and keyboard control There is no mouse control in the actual game the keyboard controls are easy to learn and are smooth.
Abdullah Muhammad
26/6/2015
Accurate game play The gameplay is interesting the game slows down slightly when the spaceship fires, other than that it is smooth. Pressing ‘P’ or ‘p’ will pause the game but ‘E’ or ‘e’ will not exit the game although it is stated on the game form.
Abdullah Muhammad
26/6/2015
How the activity meets the requirements of the assessment and grading criteria, including how and where the activity took place
Witness name Abdullah Muhammad Job role Student
Witness signature A.M Date 26/6/2015
Assessor name
Assessor signature Date
Review Comments
1 Did you enjoy this game? Yes, the game was quite enjoyable.
2 If you had to use one word to describe the game, what would it be?
Diverse
3 Would you ever want to play this game again?
Yes, I would like to play again.
4 Did you have fun? Yes I had fun.
5 What part of the game was the most exciting or fun?
The story and the gameplay.
6 What would you change about the game?
The speed of the spaceship, also the aliens could be layout a bit further away from each other.
7 Any other comments? The game lagged a bit when the shot came out from the spaceship. The quit buttons on some of the menus were misleading as I thought they would quit the game completely rather than go to the menu.Exit ‘E’ doesn’t work in game
8 What can you say about the Sound effects?
The sound effects were accurate and worked well with the game.
9 Graphics – does the game have good graphics? why
Yes the game has good graphics. The pictures look good and the backgrounds of the menus look nice.
10 Levels of difficulty – is there an opportunity for different levels
Yes there are two levels of difficulty. The second level is quite a bit harder than the first.
11 What is your first impression of the game?
It looks serious and it was visually pleasing.
Suggestions for improvementChanging the text in the quit buttons from ‘Quit’ to ‘Menu’Move the spaceships so that they are not overlapping each otherFix the ‘E’ button to exit in the gameHow will I improve my game based on the suggestions aboveChanging the Text in the quit buttons from ‘Quit’ to ‘Menu’: Will do but will keep all that’ll make you quit the game ‘Quit’
Before:
After:
Move the spaceships so that they are not overlapping each other: ether change the size of that alien, reduce the amount, expand the screen size or change the alien design all together to avoid this
Before:
After:
Fix the ‘E’ button to exit in the game: Changed the order of the end if statements in order to make it function correctlyBefore: End If If e.KeyChar = "e" Or e.KeyChar = "E" Then frmMenu.Show() Me.Close() 'This will allow you to exit the game while playing' End IfEnd If
After : End If End If If e.KeyChar = "e" Or e.KeyChar = "E" Then frmMenu.Show() Me.Close() 'This will allow you to exit the game while playing' End If
This just sends you straight into the game.
This goes to the narrative which explains the story behind the game.
This link sends you to the instruction screen that’ll show you how to play the game (and the menu won’t disappear so you can swap back and forth between the two screens.
Another link to the user guide which doesn’t have any special features yet.
This will let you exit the game.
This is the main menu where all the links to the different screens (apart from the start screen) are stored.
These are your targets which you’ll have to shoot down to clear the level (They will get faster on each level).
This is where the actual game will take place.
The main bullet “Plasma” is fired using space and when touching an alien destroys it.
This is what you’re going to control and moves via the left and right arrow key.
These are just little reminders saying you can pause and end the game while playing.
This will display what level you’re on during the game.
This will display your score during the game being played.
This is the first screen you see when you start up the game.
This link will take you to the home menu.
This is the instruction page.
These lines of text explain how to play the game.
This is the button that has caused the most trouble in my code because of its lack of wanting to work and go back to the home menu. So this has no real use
This can allow you to close the game from here.
Declarations Public Class frmQuanitne_level 'This is a very key part of the game, this is where all of the command names are defended' Dim ShootRight As Boolean Dim ShootLeft As Boolean Dim ShooterSpeed As Integer Dim TargetVelocity As Integer = 3 Dim PlasmaShotSpeed As Integer Dim AttackerSpeed As Integer Dim AttackerDrop As Integer Dim ARight(numofAliens) As Boolean Dim ALeft(numofAliens) As Boolean Dim AlienDown As Integer Dim Attacker(numofAliens) As PictureBox Const numofAliens As Integer = 10 Dim X As Integer Dim Paused As Boolean Dim Level As Integer Dim Score As Integer
Levels Private Sub Levels() If Level = 1 Then Level = 2 'This means that when the user clears the first level it then allows the second level to load'
lblLevel.Text = "Level:" & Level lblScore.Text = "Score: " & Score PlasmaShotSpeed += 3 AttackerSpeed = AttackerSpeed + 3 'This means that the speed of the aliens and the shot will increase on the next level' AttackerDrop = AttackerDrop + 3
'If Level = 2 Then Level = 3
'lblLevel.Text = "Level:" & Level 'Attacker = Attacker 'x 2
'This is a line of code for the 3rd level which hopefully will increase the number of aliens on screen'
This lets you go back into the main menu.
This is not operational however if it was it will allow the user to input new keys to better suit the particular user.
This is the setting/User guide page.
End Sub
Continuous commands Private Sub TimerQuantineLevel_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerQuantineLevel.Tick ChangeDirection() 'These are sub commands for things that don't need a variable dimmed on them' BurstPlasma() MoveAttacker() CheckFinished() CheckHit() End Sub
Load level Private Sub Quantine_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load LoadSettings() 'These are loading titles that are used to LoadAttacker() frmMenu.Show()
lblScore.Text = "Score:" & AlienDown 'My.Computer.Audio.Play(My.Resources.) End Sub
Cannon Fire Private Sub BurstPlasma() If PlasmaShot.Visible = True Then PlasmaShot.Top -= PlasmaShotSpeed My.Computer.Audio.Play(My.Resources.gun_gunshot_01, AudioPlayMode.Background) End If
If PlasmaShot.Top + PlasmaShot.Height < Me.ClientRectangle.Top Then PlasmaShot.Visible = False ‘This means if the bullet reaches the top it’ll disappear from the screen’ End If End Sub
Key Presses Private Sub frmQuanitne_level_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyValue = Keys.Right Then ShootRight = True ShootLeft = False End If ‘These 2 codes are used for controlling which way the cannon moves when a certain button is pressed’ If e.KeyValue = Keys.Left Then ShootLeft = True ShootRight = False End If If e.KeyValue = Keys.Space And PlasmaShot.Visible = False then PlasmaShot.Top = Shooter.Top PlasmaShot.Left = Shooter.Left + (Shooter.Width / 2) - (PlasmaShot.Width / 2) PlasmaShot.Visible = True PlasmaShot.Top -= PlasmaShotSpeed
End If
If PlasmaShot.Top + PlasmaShot.Height < Me.ClientRectangle.Top Then PlasmaShot.Visible = False End If End Sub Private Sub frmQuanitne_level_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp If e.KeyValue = Keys.Right Then
ShootRight = False End If If e.KeyValue = Keys.Left Then ShootLeft = False End If End Sub Private Sub frmQuanitne_Level_Keypress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress If e.KeyChar = "P" Or e.KeyChar = "p" Then If Paused = True Then TimerQuantineLevel.Enabled = True Paused = False 'This lot of code controls the pause feature of the game while you’re playing the level' Else TimerQuantineLevel.Enabled = False Paused = True End If If e.KeyChar = "E" Or e.KeyChar = "e" Then If Paused = True Then Me.Hide() 'This will allow you to exit the game while playing' End If End If End If End Sub
Play Again Private Sub PlayAgain() 'This line of code is used to display a text box which can allow the user to restart the game if the aliens reach a certain point' Dim Result = MsgBox("play Again", MsgBoxStyle.YesNo) If Result = MsgBoxResult.Yes Then LoadSettings() Levels() ‘This means that the features loaded at the start of the game when you first played it will replay again when you say yes in the message box’ LoadAttacker() Else Me.Close() End If End Sub
Cannon Movements Private Sub ChangeDirection() If ShootRight = True And Shooter.Left + Shooter.Width < Me.ClientRectangle.Width Then Shooter.Left += TargetVelocity ‘This is to make sure that if the alien’s touch the end of the wall they go the opposite way to avoid them flying off screen’ End If If ShootLeft = True And Shooter.Left > Me.ClientRectangle.Left Then Shooter.Left -= TargetVelocity End If End Sub
Load Aliens Private Sub LoadAttacker() 'These load up the aliens for the level' Attacker(1) = Alien Attacker(2) = Alien1 Attacker(3) = Alien2 ‘each listed number alien is a different picture box on screen’ Attacker(4) = Alien3 Attacker(5) = Alien4 Attacker(6) = Alien5 Attacker(7) = Alien6 Attacker(8) = Alien7 Attacker(9) = Alien8
Attacker(10) = Alien9 For Me.X = 1 To numofAliens ARight(X) = True 'This tells where the aliens start and where they should start from' Attacker(X).Left = (-50 * X) - (X * 5) Attacker(X).Top = 0 Attacker(X).Visible = True Next End Sub
Main game level load Private Sub frmQuanitne_level_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load frmMenu.Show() LoadSettings() LoadAttacker()
AlienDown += 0 lblScore.Text = "Score of:" & AlienDown 'Works in a similar way to the level only this time increases when an alien is down'
End Sub
Loading game Private Sub LoadSettings() Paused = False PlasmaShotSpeed = 20 'The speed of both the cannon and the shot' ShooterSpeed = 6 lblScore.Text = "Score:" & AlienDown PlasmaShot.Visible = False AttackerSpeed = 4 'Speed of the alien and how far down the box it should drop' AttackerDrop = 50 ShootRight = False ShootLeft = False AlienDown = 0 TimerQuantineLevel.Enabled = True Level = 1 If Level = 1 Then lblLevel.Text = "Level: " & Level 'This is so that the level is displayed and changes when level 2 is reached'
PlasmaShotSpeed = 20 AttackerSpeed = 4 ‘The base speeds of the bullet and alien when the game starts’ AlienDown = 0
End Sub
Cheek hit and level cleared Private Sub CheckHit() 'This I had major troubles with due to the structure of the code however with help I was sort it out' For Me.X = 1 To numofAliens If (PlasmaShot.Top + PlasmaShot.Height >= Attacker(X).Top) And (PlasmaShot.Top <= Attacker(X).Top + Attacker(X).Height) And (PlasmaShot.Left + PlasmaShot.Width >= Attacker(X).Left) And (PlasmaShot.Left <= Attacker(X).Left + Attacker(X).Width) And PlasmaShot.Visible = True And Attacker(X).Visible = True Then Attacker(X).Visible = False PlasmaShot.Visible = False
AlienDown += 1 lblScore.Text = "Score:" & AlienDown My.Computer.Audio.Play(My.Resources.explosion_02, AudioPlayMode.Background) End If Next If AlienDown = numofAliens Then TimerQuantineLevel.Enabled = False
MsgBox("you've saved us....for now") 'This is for when all the aliens are killed' PlasmaShot.Visible = False PlayAgain() My.Computer.Audio.Play(My.Resources.applause_8, AudioPlayMode.Background) 'This is an example of how music is able to be played End If End Sub
Alien Movements Private Sub MoveAttacker() 'This is a more technical version of the alien's movement patterns' For Me.X = 1 To numofAliens If ARight(X) = True Then Attacker(X).Left += AttackerSpeed Else Attacker(X).Left -= AttackerSpeed End If If Attacker(X).Left + Attacker(X).Width > Me.ClientRectangle.Width And ARight(X) = True Then ARight(X) = False ‘This means when the alien reaches the end of the rectangle it’ll stop going right and drop down by the amount of drop distance stated’ Attacker(X).Top += AttackerDrop End If If Attacker(X).Left < Me.ClientRectangle.Left And ARight(X) = False Then ARight(X) = True ‘Me.ClientRectangle is the screen in which the game is played’ Attacker(X).Top += AttackerDrop End If Next End Sub
Game Over Private Sub CheckFinished() For Me.X = 1 To numofAliens
If Alien.Top + Alien.Height >= Shooter.Top And Alien.Visible = True Then 'This is for when the aliens reach the bottom, a game over message will apper' TimerQuantineLevel.Enabled = False
Me.X = numofAliens My.Computer.Audio.Play(My.Resources.fail_trombone_02, AudioPlayMode.Background)
MsgBox("Emergency Emergency Emer..................") PlayAgain() End If Next If AlienDown = numofAliens Then TimerQuantineLevel.Enabled = False MsgBox("There gone") ‘This I had to include in to make the game over code work’ End If End SubEnd Class
User Guide
To start the game first you need to open Microsoft Visual Basic 2010 Express and the game will either be available under Recent Projects .
Or you can open it from a folder within a memory card.
To start the game once it’s loaded you ether press F5 or click on “Start Debugging”.
When you have started the game you’ll be taken straight into the opening screen of the game, press the “protect us” button to load up straight into the main menu of the game.
Once you have done you come to the main menu which has links to all but the opening page, to access one you have to just click on one of the links and it’ll take you straight into the selected page, or you can just press quit to exit the game.
If you clicked play then you go straight into the first level of your level which is where the fun is. You move you cannon by pressing the left and right arrow key and fire by pressing space.
If you don’t know how to play the game then there is a instructions page you can access via the menu which you can enter via the “instruction” button (the menu button doesn’t work yet so don’t press it), however I fixed it by making so when you go here it doesn’t close the menu page.
When you have shot down all ten aliens you get a message box with an applause sound congratulating you on clearing the level.
When you have pressed ok to the message box you then get another one telling you would you like to play again, if you press yes it’ll go to level two, if you press no you exit the game.
Level 2 will be harder and faster but the controls will remain the same.
And when you’ve cleared level 2 you get the same two messages this time if you press yes to “play again” it’ll replay level 2 (as there is no level 3 yet).
However If even one alien lands on the planet you get a different message box and sound signalling you have failed, but you will get a play again message box after this to retry the game.
Levelling and scoring
lblLevel.Text = "Level:" & Level
There are 2 levels in this game (did have an idea for a 3rd however I didn’t come out very well so I decided that it was best to scarp the idea as I felt it wouldn’t improve the game that much). The levels will increase the speed of the aliens and the cannon making the action faster and harder to control. This is done by a section of code that adds a new number to the set speed present in the last level (AttackerSpeed += 3) which will rise up the alien speed by 3.
The scoring system here can go up to 10 per level which is how many aliens there are on screen, currently the score resets when you reach the 2nd level which I’ve been unable to fix, however it still serves a useful process of giving the user a guide as to where there are within the game and how close they are to completing the level.
Both the score and level use a text box but the number system is not included in the text as if they were it will not change, so I had to link for example Score with AlienDown meaning that when AlienDown goes up by 1 then the number next to score goes up by one.
Private Sub Levels() If Level = 1 Then Level = 2lblScore.Text = "Score: " & Score PlasmaShotSpeed += 3 AttackerSpeed = AttackerSpeed + 3 AttackerDrop = AttackerDrop + 3
This is the line of code that enables the game to increase its difficulty by making the aliens move faster mostly. It also shows how the score system works in game.
Updated action list
List Duration Developer Date done
Skills Required
Resources
Create storyboard (scenes)
1 Day Freddie Sidaway
28/02/15 Drawing and design
Microsoft word/paper
Create Original action list
30 minutes Freddie Sidaway
29/02/15 Writing Microsoft word/paper
Create screen layout
3 days Freddie Sidaway
02/03/15 Drawing and Design
Microsoft word/paper
Create Pseudo-code
1 day Freddie Sidaway
02/03/15 Writing Microsoft word/paper
Create game objects
12 days Freddie Sidaway
14/03/15 Drawing Paper/paint/Photoshop
Create game 3 Months FreddieSidaway
18/06/15 Programming Microsoft windows visual Basic 2010
Test game 1 hour Freddie Sidaway
18/06/15 Writing Microsoft windows visual Basic 2010
Gain User feedback
3 days Freddie Sidaway
25/06/15 Writing Microsoft word
Make improvements
3 days Freddie Sidaway
25/06/15 Writing Microsoft windows visual Basic 2010
Data Dictionary
Variable name Data Type Declaration Used for
ShootRight Boolean Dim ShootRight As Boolean
Moves the shooter Right
ShootLeft Boolean Dim ShootLeft As Boolean
Moves the shooter Left
ShooterSpeed Integer Dim ShooterSpeed As Integer
To alter and tell how fast the cannon can travel across the screen
TargetVelocity Integer Dim TargetVelocity As Integer = 3
How fast the aliens can move
PlasmaShotSpeed Integer Dim PlasmaShotSpeed How fast the bullet will
As Integer go, during the game
AttackerSpeed Integer Dim AttackerSpeed As Integer
How fast the aliens go on screen
AttackerDrop Integer Dim AttackerDrop As Integer
How far the alien will drop once they reach the sides of the level
ARight(numofAliens) Boolean Dim ARight(numofAliens) As Boolean
Making all the aliens move right on screen
ALeft(numofAliens) Boolean Dim ALeft(numofAliens) As Boolean
Making all the aliens move left on screen
AlienDown Integer Dim AlienDown As Integer
For scoring when an alien is destroyed
numofAliens Integer Const numofAliens As Integer = 10
To link certain lines of code to affect all the aliens
X Integer Dim X As Integer A variable for specific aliens
Paused Boolean Dim Paused As Boolean
To enable the game to freeze (not close) and unfreeze at will
Level Integer Dim Level As Integer Text box to display how far in the game the player is
Score Integer Dim Score As Integer Text box to display the amount of points scored by the player
Attacker(numofAliens) PictureBox Dim Attacker(numofAliens) As PictureBox
Declaration for all the aliens on screen to help link them all together
(No idea what happened here)
Test Plan
System Name Game Tested By: Freddie Sidaway
Quarantine form Quarantine Date: 26/06/2015
Test No.
Test Description
Input Expected Result
Actual Result
Error Message
Corrective Action Taken
1 Shooter movement
Press the right/left arrow Key
Shooter moves left or right
Passed none n/a
2 Alien movement
None, let the aliens fly around
The aliens should be able to move on their own
Passed none n/a
3 Music Activate a certain function (i.e fire the gun)
Music should be able to play when a certain requirement is met
Passed none n/a
4 Pausing Press p The game should be paused
Passed none n/a
5 Fire cannon Press space A purple bullet like object should come out from the cannon
Passed none n/a
6 Score read Kill an alien When an Passed none n/a
alien is hit the score should go up by one
7 Level increase
Clear level 1 It should come up with a message box saying you’ve cleared the level
Passed none n/a
8 Alien speed up
Start level 2 The aliens have to be faster in level 2 then level 1
Passed none n/a
9 Button links test
Click on All the menu buttons must be able
All but one passed
none I’ve had to take out the me.Hide() part of the faulty code to make it work better (this means that the instruction page will not close the menu and will instead open up as a new window
10 Msg box timing
Meet a command to make a message box appear
Message boxes have to appear at the correct time
Passed none n/a
11 Music timing Meet a certain condition
The audio tracks must activate when during the correct timing
Opening; passedCannon; failExplosion: passedLevel Clear: PassedGame Over: Passed
none The cannon seems to only go off ether after an alien is destroyed (so it gets mixed in with the explosion sound) or when it misses and goes off when it disappears and I’ve tried to change the order in which the sound code is placed however it did so to little availMy.Computer.Audio.Play(My.Resources.gun_gunshot_01, AudioPlayMode.Background)
12 QA testing Try to make the game
Cheek to make sure
Passed none n/a
glitch out the whole game runs smoothly
13 Start-up menu test
Open up the game
The game should start at the main menu
Fail noneI had to change the ‘startup from’ in my game’s application form from frmGame to frmOpen so that the game starts from the open menu
14 Will the game be able to end
Press e The game should be able to end when the e key is pressed during a game
Fail none
The End if’s in my keypress section was mixed up so there should have been two end ifs at pause and one at the bottom
15 Increase the number of aliens
Reach level 3
The number of aliens should go up by a minimum of 5
Fail none I had to remove it cause I found it unnecessary in terms of actually improving the game also it glitches out the game making the level rise up to level 3 after level 1
'If Level = 2 Then Level = 3
'lblLevel.Text = "Level:" & Level 'Attacker = Attacker 'x 2
16 Game over sequence
Let an alien land
The game over music and message box should appear on screen
Fail none Added a small section to the end of the game over private sub to make it work as before even if all the aliens got to the end the game wouldn’t end:
Next
If AlienDown =
numofAliens Then TimerQuantineLevel.Enabled = False MsgBox("There gone")
17 Audio Volume
Play the audio tracks in the game
Make sure that the sounds are not too loud or too quiet
Opening: passed (but just)Cannon: passedExplosion: passedClapping: passedGame Over: passed
none n/a
18 Score counting
Kill the aliens in level 2
Insure that when the game goes to level 2 that the score is ether carried over
Fail none I’ve found a fault in the code that meant when the game went to level 2 it didn’t carry over and instead displayed the score as 100, so all I had to do to fix was remove the 10 at the end of the socre
Before: lblScore.Text = "Score: 10" & Score
After: lblScore.Text = "Score: " & Score
19 Smoothness test
Play out the game
Make sure that all the controls and systems within the game work perfectly
Passed, but with a bit of a slowdown in speed occasionally
none I had to remove the background image of the main game level and the quality of the gameplay improved massively
20 Sight ability Play the game under different resolutions and screen sizes
Insure that the game is still able to function regardless of the size and/or resolution of the screen
passed none n/a
(Or here)
Control Methods
Selection- evidence Used for
Iteration - evidence Used for
Private Sub frmQuanitne_Level_Keypress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress If e.KeyChar = "P" Or e.KeyChar = "p" Then If Paused = True Then TimerQuantineLevel.Enabled = True Paused = False 'This lot of code controls the pause feature of the game while your playing the level' Else TimerQuantineLevel.Enabled = False Paused = True End If If e.KeyChar = "E" Or e.KeyChar = "e" Then If Paused = True Then Me.Hide() 'This will allow you to exit the game while playing' End If End If End If End Sub
This line of code is mostly to ensure that when a key feature is done (like the pause feature) that the game knows what features to continue or end when executed.
Private Sub LoadAttacker() 'These load up the aliens for the level' Attacker(1) = Alien Attacker(2) = Alien1 Attacker(3) = Alien2 Attacker(4) = Alien3 Attacker(5) = Alien4 Attacker(6) = Alien5 Attacker(7) = Alien6 Attacker(8) = Alien7 Attacker(9) = Alien8 Attacker(10) = Alien9 For Me.X = 1 To numofAliens ARight(X) = True 'This tells where the aliens start and where they should go' Attacker(X).Left = (-50 * X) - (X * 5) Attacker(X).Top = 0 Attacker(X).Visible = True Next End Sub
These load up the aliens at the very start of the game once the level is loaded and it tells the system where to spawn the aliens and where they should move first.
Private Sub PlayAgain() 'This line of code is used to display a text box which can allow the user to restart the game if the aliens reach a
This will allow the user to play the
Private Sub CheckHit() 'This i had major troubles with due to the way the code was laid out making it hard to read' For Me.X = 1 To
This is to ensure that when my bullet or
certain point' Dim Result = MsgBox("play Again", MsgBoxStyle.YesNo) If Result = MsgBoxResult.Yes Then LoadSettings() Levels() LoadAttacker() Else Me.Close() End If End Sub
game again if they ether fail the game or they clear the first level and want to move on to the second level.
numofAliens If (PlasmaShot.Top + PlasmaShot.Height >= Attacker(X).Top) And (PlasmaShot.Top <= Attacker(X).Top + Attacker(X).Height) And (PlasmaShot.Left + PlasmaShot.Width >= Attacker(X).Left) And (PlasmaShot.Left <= Attacker(X).Left + Attacker(X).Width) And PlasmaShot.Visible = True And Attacker(X).Visible = True Then Attacker(X).Visible = False PlasmaShot.Visible = False AlienDown += 1 lblScore.Text = "Score:" & AlienDown My.Computer.Audio.Play(My.Resources.explosion_02, AudioPlayMode.Background) End If Next If AlienDown = numofAliens Then TimerQuantineLevel.Enabled = False
MsgBox("you've saved us....for now") 'This is for when all the aliens are killed' PlasmaShot.Visible = False PlayAgain() My.Computer.Audio.Play(My.Resources.applause_8, AudioPlayMode.Background) 'This is an example of how music is able to be played End If End Sub
Plasma hits an alien it then disappears and the score goes up by one. It even has a message box and audio feature that’ll play when all the aliens are defeated on screen.
Private Sub ChangeDirection() If ShootRight = True And Shooter.Left + Shooter.Width < Me.ClientRectangle.Width Then Shooter.Left += TargetVelocity End If If ShootLeft = True And Shooter.Left > Me.ClientRectangle.Left Then Shooter.Left -= TargetVelocity End If
This private sub is used to change the direction of the cannon and like with the
Private Sub MoveAttacker() 'This is a more technical version of the alien's movement patterns' For Me.X = 1 To numofAliens If ARight(X) = True Then Attacker(X).Left += AttackerSpeed Else Attacker(X).Left -= AttackerSpeed End If
This code is making sure that the aliens don’t fly off the screen while the game is playing. This makes sure that when they hit the
End Sub move alien code stops it going off screen.
If Attacker(X).Left + Attacker(X).Width > Me.ClientRectangle.Width And ARight(X) = True Then ARight(X) = False Attacker(X).Top += AttackerDrop End If If Attacker(X).Left < Me.ClientRectangle.Left And ARight(X) = False Then ARight(X) = True Attacker(X).Top += AttackerDrop End If Next End Sub
end of the ‘ClientRectangle’ which is where the game is played in that they change direction to go the other way.
Private Sub frmQuanitne_level_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyValue = Keys.Right Then ShootRight = True ShootLeft = False End If If e.KeyValue = Keys.Left Then ShootLeft = True ShootRight = False End If If e.KeyValue = Keys.Space And PlasmaShot.Visible = False then PlasmaShot.Top = Shooter.Top PlasmaShot.Left = Shooter.Left + (Shooter.Width / 2) - (PlasmaShot.Width / 2) PlasmaShot.Visible = True PlasmaShot.Top -= PlasmaShotSpeed
End If
If PlasmaShot.Top + PlasmaShot.Height < Me.ClientRectangle.Top Then PlasmaShot.Visible = False End If End Sub
This basically tells the shooter where to go when a key button is pressed and for the main bullet how big it’ll be when it’ll disappear and where to fire it again from when it does disappear again.
Private Sub CheckFinished() For Me.X = 1 To numofAliens
If Alien.Top + Alien.Height >= Shooter.Top And Alien.Visible = True Then 'This is for when the aliens reach the bottom, a game over message will apper' TimerQuantineLevel.Enabled = False
Me.X = numofAliens My.Computer.Audio.Play(My.Resources.fail_trombone_02, AudioPlayMode.Background)
MsgBox("Emergancy Emergancy Emer..................") PlayAgain() End If Next If AlienDown = numofAliens Then TimerQuantineLevel.Enabled = False MsgBox("There gone") End If End SubEnd Class
This is a game over sequence for when the aliens reach a certain point of the screen (just before the bottom of the game screen).
Private Sub BurstPlasma() If PlasmaShot.Visible = True Then PlasmaShot.Top -= PlasmaShotSpeed My.Computer.Audio.Play(My.Resources.gun_gunshot_01, AudioPlayMode.Background)
This is to tell the plasma bullet where to go, what noise will it make
Private Sub frmQuanitne_level_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp If e.KeyValue = Keys.Right Then ShootRight = False
This is to ensure that the shooter doesn’t fly off in a single direction after the
End If
If PlasmaShot.Top + PlasmaShot.Height < Me.ClientRectangle.Top Then PlasmaShot.Visible = False End If End Sub
when fired and when to disappear off screen.
End If If e.KeyValue = Keys.Left Then ShootLeft = False End If End Sub
button is pressed.
Private Sub Quantine_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load LoadSettings() 'These are loading titles that are used to Start up the level’ LoadAttacker() frmMenu.Show()
lblScore.Text = "Score:" & AlienDown End Sub
These features will be loaded instantly once the game level starts.
Private Sub TimerQuantineLevel_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerQuantineLevel.Tick ChangeDirection() 'These are sub commands for things that don't need a veriable dimmed on them' BurstPlasma() MoveAttacker() CheckFinished() CheckHit() End Sub
These are the features that will continuity be in effect when the game level is being played.
Private Sub Levels() If Level = 1 Then Level = 2 'This means that when the user clears the first level it then allows the second level to load'
lblLevel.Text = "Level:" & Level lblScore.Text = "Score: " & Score PlasmaShotSpeed += 3 AttackerSpeed = AttackerSpeed + 3 'This means that the speed of the aliens and the shot will increase on the next level' AttackerDrop = AttackerDrop + 3
'If Level = 2 Then Level = 3
'lblLevel.Text = "Level:" & Level 'lblScore.Text = "Score: " & Score 'AttackerSpeed = AttackerSpeed + 3 'AttackerDrop = AttackerDrop + 3 End Sub
This is to create new levels by increasing the speed of the aliens and the cannons speed once all the aliens on the screen have been destroyed and the user has said yes to play again.