CSE 3902 Professional Software Development - Sprint 3 - mario playground
Due (subject to change):
- Sprint planning: Monday, February 11th, before class.
- Initial implementation: Monday February 18th, before class.
- Refactored code: Friday February 22nd, before class.
- Group Team Rubrics: due Friday, February 22nd in class.
Objectives:
- Implement requirements/use cases for enemies present on level 1-1, making use of good programming principles and the Command design pattern to separate concerns of UI or events from actions.
- Implement movement and jumping for Mario using the Strategy design pattern.
- Implement state transitions, collision detection, and collision response for Mario.
- Add a background.
- Define a level via a csv file.
- Create an artificial level that contains an instance of Mario and all types of blocks, powerups/items, and enemies that are found in level 1-1, but place them such that they all fit on the screen at the same time.
The end result will be a testing ground for the various game elements, but without sound, a moving camera, heads up display elements (points, timer, coin count, level number), and the ending flag sequence.
Sprint 3 Tasks:
- Planning (20 points):
- Add dates for Sprint 3.
- Add several work items for Mario's movement, enemies, background elements, and collision detection and response. Include an effort amount (you can change this later as you see the task breakdown).
- Add a task for updating your mario class to include movement and jumping.
- Add a task for creating an IEnemy interface.
- Add a task for creating classes for Goombas and Koopas.
- Add a task for handling Mario's state transitions.
- Add a task for creating the background image.
- Add a task for level specification via a csv file.
- Add a task for creating pipes.
- Add a task for implementing collision detection and response between Mario and enemies.
- Add a task for implementing collision detection and response between Mario and blocks and pipes.
- Add a task for creation of a csv file for a test level that includes all game elements and objects found in level 1-1.
- Associate all of these work items and tasks with Sprint 3.
- Grading will be based on TFS admin (3 points), completeness of tasks and assignments (12 points), and burndown chart (5 points)
- First Implementation (30 points):
- Assign initial tasks to each team member and have them implement them.
- When you sit down to work on this sprint, drag the task you are going to work on to in-progress on the board.
- If you finished the task during that session, drag it to Done and check your work into TFS.
- If you did not finish, but it compiles, change the remaining work for the tasks and check your work into TFS.
- If it is not finished and does not compile, change the remaining work for the tasks and make sure your work is saved (or shelved).
- Grading will be based on whether it works and is complete (25 points) and did everyone contribute (5 points).
- Final Refactored Implementation (50 points):
- Go through each class and tighten the variable names, check the logic and end cases.
- After changes are made, send a Code Review request to another team member (or two).
- Run Code Analysis on your solution and fix any reported warnings or errors. For warnings you do not wish to fix, provide justification in the readme file.
- Respond to any criticisms from the instructors on your code.
- Grading will be based on: does it still work (5 points), Code review quality and participation (10 points), adherance to coding standards (10 points), percentage of Code Analysis errors (10 points) and overall code quality (15 points)
Additional notes:
Make sure each team member works on defining and adding tasks to TFS. Similarly, make sure everyone works on implementing some subset of the use cases for the Sprint.
Grading:
See above. In addition, your individual scores will be weighted based on the team rubrics and activity in TFS.
Key Mappings
Please use lower case letters for the keys
Use the arrow keys for left/right/crouch movement
Use the z key for jumping
Use the x key for running and fireballs
GamePad Mappings
Use the left joystick for left/right/crouch movement
Use the a key for jumping
Use the b key for running and fireballs