You have been given the task of creating an asteroids game as a game in Visual Studio. Your team is using the Agile project management approach, so you will need to go through the whole of the systems lifecycle in a short cycle time called a sprint (see Agile foundation glossary for more key terms).
The aim of this first 3 hour sprint is to show a rough design/prototype for the game to the client
You will need to go through the following stages:
Analysis - what is required
Design - what will the application look like, what will be the backend logic (pseudocode, flowcharts)
Building - what can you build as a demo - you will need to do some research on what is possible in terms of windows forms or WPF desktop apps and the ability to move images around the form on the screen.
Testing - what are you test criteria, has the app met the criteria, if it doesn't what do you need to do to fix it? (i.e. verification)
Review (Acceptance) - Presenting this iteration to the client: does it meet the client's requirements (i.e. validation)
Evaluation - What is going well (what does the client like), what needs changing in the next iteration
You should do this task in groups of 3 or 4 - who is in your group?
First all you need to think about the Asteroids game and draw up list of requirements in the format
R1: The Game needs to be able to ...
You will use this itemised list when undergoing the validation process later
When considering your design it is import to be able to make decision about what you can deliver
Post a screenshot or a link to your diagram here.
Having designed the front end you now need to think about the algorithms behind this. What processes, classes objects etc. do you think you need to create?
back-end (algorithm design techniques include:
Create some diagrams/peudoocde in these formats and stioe them as shared documents/links in your project management tool.
Also share links to them here:
You will probably have to research how to make a picture move on a form etc.
what does your team think they need to research in order to code the game. Having though about the design you should have a clear and specific idea of what you need to be able to do here.
things you may need to think about:
1) How would you create a spaceship 'sprite' in a windows forms app (clue - picturebox control!)
2) How could you move it around the screen:
Create a button which changes the picturebox's x or y coordinate
Add a key press event - see:
3) How would you create multiple instances of an asteroid sprite create an asteroid class with random x & y coordinates, movement etc.?
Before you start building you need to create a testing grid so that you know what your success crieria will be (otherwise you won't know if the game works - you may have created a game, but not one that does what you originally intended).
A typical format for a testing grid might be:
|Test||Expected Result||Actual Result||What needs correcting||Date corrected|
|Spaceship Sprite forward movement||Must be able to move forward with the up arrow key on the keyboard|
|Spaceship Sprite turn movement (Right)||Must be able to rotate clockwise when a user presses the Right arrow key|
You can fill in the first two columns before you start coding. This will set up the criteria by which you will judge success before you start.
You will in the rest of the columns later, once you have built that functionaiity or when you have built the entire program/prototype
Show your testing grid here
When you have got some code ready to demonstrate, show me
Now test your project, going through all the tests you listed on your testing grid, which you created earlier
Post the completed grid here
First you need to check that you have achieved all the requirements set out at the requirements analysis stage (R1, R2 etc.) YOu then need to make a note of what you have not achieved and have a plan for how it could be achieved (what still needs to be done to achieve it, if it cannot be achieve, you need to say why)
You now need to present your code to the client (me) showing how you have achieved the requirements
1) What has gone well on this iteration
2) What needs to be done differently next time
Identify one thing you have done well in working with other on this task
Identify one thing you could improve on next time]