Reflection on RUP - Richardng12/Terra_Tales GitHub Wiki
Reflection on RUP Divergence Studios - Team 8
In the development of Terra Tales, team Divergence employed the RUP software development process. RUP is an iterative development process, divided into four main phases. Namely, these phases are inception, elaboration, construction, and transition.
The inception phase was where the basic idea and project structure for our game was determined. In this phase, we developed plans and time estimates for features and design decisions. Furthermore, we had to ensure all team members were familiar with the scope definition and requirements of the project. This was done via regular group meetings and consistent communication. Notably, it was during the inception phase where the work breakdown structure was constructed to specify milestones we had to achieve. Challenges we faced such as scope creep revolved largely around the fact that we could not define concrete requirements without a comprehensive understanding of our project. This was because during the inception phase there was no coding done, therefore all ideas were purely from a theoretical standpoint. This resulted in changing requirements during the elaboration phase. The inception phase was useful for rapid generation of ideas and to set up an initial plan to familiarise ourselves with game development.
The elaboration phase was where we further analysed the requirements and considered the overall architecture of our project. Here, we developed a vision for our project while adhering to client specifications. This is also where team divergence agreed upon designing our game on the Unity Engine. The largest hurdle we faced during this phase was the large time expenditure and constant iterations of our project vision - as briefly discussed in Team Divergence’s prototype reflection. We often found that early meetings ran overtime, and stakeholders (team members) did not agree that the proposed vision could be achieved or meets client requirements. Eventually, we came to a unified vision through discussion with our lecturer - Rashina. The feedback from our lecturer helped solidify our understanding of the serious mappings and eliminate any misunderstandings that were not apparent from the requirements, allowing us to proceed to the next phase.
The construction phase is where all coding and implementation of features took place. This is where we allocated deliverables previously specified and began implementation. Allocation of deliverables was largely given based on level, as our project vision features three level designs - forest, ocean, and city. This made up for the bulk of a project time due to the nature of this phase. The main challenge we encountered was merging and piecing the project together due to a large number of branches that were created. Furthermore, due to the relatively isolated design of each level, it was difficult in creating overarching features that fit all levels such as character mechanics. There were two deliverables during the construction phase, the prototype deliverable and the final project deliverable. In order to reduce time constraints on the final project deliverable, we decided to implement some of the design features in the prototype. For example, the health system was implemented beforehand in order to save more time for the final implementation.
The transition phase was where we deployed our game to be playable and got feedback from other teams to improve our end product. Both releases to an executable file and WebGL format were extensively tested to make sure that these versions did not differ in playability from the Unity Play Mode. Since our team received external team feedback during prototype deployment, it meant that we had a list of things to improve on for the final implementation. This was especially useful in order to fine-tune properties such as the difficulty of each level. One challenge faced during deployment was getting certain elements of the WebGL working such as exiting the game. This was because shortcuts for a browser differed from regular window shortcuts.