seannich / RatVenture_ETI_Assignment

1 stars 0 forks source link

RatVenture

The Team

USER STORIES

NO. FEATURE SUB FEATURE USER STORY
1 UI Creation Main Menu As a player I want to be able to select an option so that I can start the game.
As a player I want to be able to select an option so that I can resume a saved game.
As a player I want to be able to select an option so that I can exit the game.
Various Game Menus As a player I want to have different game menus so that I can do different activities.
As a player I want to be able to have combat options so that I can fight my enemies.
World Map As a player I want to be able to see a world map so that I know where my character is.
2 Functions Creation in Town View Character As a player I want to be able to view my character’s damage so that I know how much damage I deal to enemies.
As a player I want to be able to view my character’s defence so that I know how well I defend against enemies.
As a player I want to be able to view my character’s health so that I know when I’m supposed to heal myself.
View Map As a player I want to be able to view my character on the map so that I can plan out my next move.
Move As a player I want movement instructions so that I know where I am moving my character.
As a player I want to see my selected movement key so I have confirmation on pressing the correct movement key.
Rest As a player I want to be able to rest so that I can restore my health.
3 Functions Creation for Combat Attack As a player I want to be able to attack during a fight so that I can defeat the opponent.
As a player I want to be able to see how much damage I did to the enemy so that I know if I can defeat the enemy.
As a player I want to be able to see how much damage I’ve taken from the enemy so that I know how to plan my next move.
As a player I want to be able to have updates on my health so that I can plan my next move.
Run As a player I want to be able to run away from a fight so that I can prevent myself from dying if I am low on health.
4 Saving Player Progress New Game As a player I want to be able to start a new game so that I can play the game.
Save Game As a player I want to be able to save the game so that I can pause and come back to the game another time.
As a player I want my game to override my previous save file so that I do not waste space on my computer.
Resume Game As a player I want to load up a save of my previous game so that I can continue from where I stopped previously.
Exit Game As a player I want to be able to exit the game so that I can stop playing and come back another time.

Test Case

https://docs.google.com/spreadsheets/d/1REM_Zuic9MikKO7BMGfUAbZG_yLYqEZaIX6TLMytje0/edit?usp=sharing

Unit Test Case

https://docs.google.com/spreadsheets/d/1DK48HHMUWz7tdjme2gWoUE1di0bqIsU-PecbWBIZ3JE/edit?usp=sharing

METHODLOGOIES CONSIDERED

  1. Iterative Model
  2. Waterfall Model
  3. Scrum Model [Chosen]
  4. Big Bang Model

Why We Considered

1. Iterative

iterative.png

In this assignment, all the requirements of the final product are clearly defined and understood. The timeline of the different development stages have been planned out in the Sprint Log. Each sprint we release a specific set of usable features, which are enhanced in the next sprint by other features. The features will be more advanced as each sprint passes, for example the first sprint will be simply creating the UI of the various game menus. The following sprints will be the actual development of the game functions such as Move, Rest and so on. As the Iterative Model allows accessing previous phases, we will be able to access the code from the previous sprints if any changes have to be made to the existing features. We will also be using a new technology, PyTest, to run the automated tests.

2. Waterfall

A linear project management approach, where stakeholders and requirements are gathered at the beginning of the project. A sequential approach is planned out to accommodate the requirements. This method is named so that each phrase of the project cascades into the next.

waterfall.png

Advantages:

Disadvantages:

For this assignment, all our requirements are well defined and will not change. We started off the assignment by carrying out requirement gathering and documentation. We have also planned out the development schedule with specific end goals in mind, hence reducing time wastage. We will also implement automated testing only after our features have been completed.

3. Scrum Model (Chosen)

Scrum is an agile project management methodology used primarily for software development projects. It is based on a set of very defined practices and roles that must be involved during the software development process. It is a flexible agile project management framework that rewards the application of the 12 agile principles in a context agreed by all the team members of the product.

scrum.png

The scrum methodology follows the values and the principles of agile, includes further definitions and specifications, especially regarding certain software development practices. Though scrum and agile are thought to be the same thing, however scrum is centered around continuous improvement and “getting work done”. In a way it acknowledges that the team doesn’t know everything at the start of a project and will evolve through experience.

task.pngsprint.png

The scrum model suggests that the project progresses via a series of sprints. In keeping with an agile methodology, sprints are timeboxed to no more than a month long, most commonly two weeks. One reason why it became our consideration, is due to the fact that this method can be applied on the github web application by setting the milestones as sprints. Additionally, allows the team to keep track of processes via creation of tasks on github and assigning them to the team members of the projects.

Advantages

The Scrum model allows the development to be incremental and iterative, having time in sprint to take place each 1 to 3 weeks each sprint being set in github as milestones. This model promotes a disciplined project management process that encourages inspections and adaptations frequently, the systematic process of Planning, implementing, building and testing. Additionally this model provides more value to the work of the development team, providing them more time to develop the application by reducing those non-productive issues. The QA will be able to track the project status with greater awareness, being able to catch and address the issues or bugs quickly by creating it on the github kaman board which will notify the developers on the issues and resolve it as soon as possible. This model provides the structure of having clear communication between the team, transparency and dedication for continuous improvements on the project. Additionally, it is structured to help the team naturally adapt to the changing conditions and user requirements of the project, with re-prioritization built into the process and with their short sprints to release features, it aids the team to constantly learn and improve on the go. Hence reason being to Scrum Model to be our main consideration.

4. Big Bang Model

bb.png

The Big Bang model is unique in that it requires virtually no planning, organization, best practices, or typical procedures. Instead, the Big Bang model is fundamentally about simply starting the project right now, at this instant, with no formal development structure or organization.

The design of Big bang model as follows:

Advantages:

Disadvantages:

Since our assignment isn’t considered as a big project, the big bang model can be used as a last resort if all our previous methodologies have failed. Given the huge risk that this model has, it should only be considered if the team is running out of time to complete the assignment. The simple nature of this model means that the team doesn’t have to waste too much time planning or documenting and can just jump straight into the coding and testing aspect. This would be helpful if the deadline is nearing and there is still a lot to complete as each team member could focus on a feature to try and complete it.

PRODUCT BACKLOG

SPRINT NO. TASKS
1 UI Creation
1. Create UI for world map
2. Create main menu containing various choice numbers
- New game
- Resume game
- Exit game
3. Create various game menus with the respective choices
- Town/Outdoor menu
- Combat menu
Test to see if player input is displayed correctly
1. Player choice is displayed correctly for various game menus
2 Create functions for town menu
1. View character:
- Shows the player’s damage, defense, health
2. View map:
-Shows world map
3. Move:
- Shows the world map with instructions indicating which key moves the player in which direction.
- Displays the player’s chosen key.
- Add 1 day to the time
4. Rest:
- Shows the text “You are fully healed.”
- Add 1 day to the time
Test if appropriate UI shows up and functions are working as intended
1. View character:
- Shows the player’s stats properly. (eg. if player has 10hp it should be reflected there)
2. View map:
- Shows the map with H being where the player currently is.
3. Move:
- Shows the map and its instructions. The player’s chosen key is displayed properly.
- The position of H moves in the correct direction.
- Ensure that 1 day is added to the time
4. Rest:
- Rest text is shown
- Player’s health is reset back to 20
- Ensure that 1 day is added to the time
3 Create functions for combat menu
1. Attack:
- Deal 2-4 damage to enemy
- Display damage dealt to enemy
- Damage dealt is calculated after deducting enemy defense from player’s attack
- Display damage taken from enemy
- Damage taken follows same calculation as damage dealt
- Display remaining health
- Display outdoor menu if enemy is defeated
2. Run:
- Displays outdoor menu
Update town menu into outdoor menu
1. Display the following choices:
- View character
- View map
- Move
- Exit game
2. If player ran, view character and view map brings player back into combat
3. If brought into combat, enemy will recover all its health
Test combat menu
1. Attack:
- Damage is between 2-4
- Damage dealt is displayed correctly
- Player remaining health is displayed correctly
- Enemy remaining health is displayed correctly
- Outdoor menu is displayed after enemy is defeated
2. Run:
- Outdoor menu is displayed
Test outdoor menu
1. The correct choices are shown
2. If player ran, player is brought back into combat menu if view character or view map is chosen
3. If brought back into combat, enemy has recovered all its health
4 Saving player progress
1. New game:
- New game is created with the player starting at the original position with full health.
2. Save game:
- Player progression is saved into .csv file
- Overrides previous save file
3. Resume game:
- Game reads progress from existing .csv file
4. Exit game:
- Program stops running
Testing player saves
1. New game:
- Player should be at full health
- Player should have no progress
2. Save game:
- Player progress is written into a .csv file
- .csv file is created if there is no existing one
- Existing .csv file is overwritten
3. Resume game:
- Program successfully reads save file
- Displays error message if unable to do so
4. Exit game:
- Program stops running successfully