You are The Hero. The world is being invaded by the Rat King and his endless rat minions. The only way to defeat the Rat King is to find the Orb of Power located in the faraway land of Katalina. In this computer role-playing game, you will travel around a grid map searching for the Orb of Power and fighting rat minions. On the map are various towns where you can rest and save your game. Once you find the Orb of Power, the Rat King loses.
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. |
https://docs.google.com/spreadsheets/d/1REM_Zuic9MikKO7BMGfUAbZG_yLYqEZaIX6TLMytje0/edit?usp=sharing
https://docs.google.com/spreadsheets/d/1DK48HHMUWz7tdjme2gWoUE1di0bqIsU-PecbWBIZ3JE/edit?usp=sharing
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.
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.
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.
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.
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.
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.
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.
SPRINT NO. | TASKS |
---|---|
1 | UI Creation |
|
|
Test to see if player input is displayed correctly | |
|
|
2 | Create functions for town menu |
|
|
Test if appropriate UI shows up and functions are working as intended | |
|
|
3 | Create functions for combat menu |
|
|
Update town menu into outdoor menu | |
|
|
Test combat menu | |
|
|
Test outdoor menu | |
|
|
4 | Saving player progress |
|
|
Testing player saves | |
|