Enhancement Proposal of Supertuxkart
Total Page:16
File Type:pdf, Size:1020Kb
Enhancement Proposal of SuperTuxKart Team Neo-Tux Latifa Azzam - 10100517 Zainab Bello - 10147946 Yuen Ting Lai (Phoebe) - 10145704 Jia Yue Sun (Selena) - 10152968 Shirley (Xue) Xiao - 10145624 Wanyu Zhang - 10141510 1 ABSTRACT This report outlines our enhancement proposal for SuperTuxKart, the addition of an endless game mode. The main motivation for this mode is to enhance the attraction of SuperTuxKart, thereby, leading to an increase in the number of players. It is also aimed to create a more distinctive kart racing game from its rival, Mario Kart. The report explores our proposed alternatives for implementing this feature and the use of the SAAM analysis for examining the alternatives discussed. This analysis was crucial in determining which of the alternatives has more advantage over the other. The analysis involves exploring the pros and cons of each alternative in connection to the Non-Functional Requirements of the proposed enhancement feature. We also investigated the effects of this new feature on other subsystems in our conceptual architecture. This was achieved by analyzing the source code to discover the files and directories that would be affected by the new feature. This in-turn, helped us in identifying the corresponding subsystems impacted by the feature. After this, we explored our plans for testing the impacts of the new feature on the subsystems and the potential risks of the enhancement feature. 2 TABLE OF CONTENTS 1. Introduction and Overview 2. Enhancement Proposal 2.1.The Proposal 2.2. The effects of the enhancement on the maintainability, evolvability, testability, performance of System 3. Alternatives for realizing the proposed enhancement are presented 4. SAAM analysis for the alternatives 5. Diagrams 5.1. Use Case Diagram 5.2. Sequence Diagrams 6. Effects of the enhancement on the high level and low level architecture 6.1. Impact on the Concrete architecture 6.2. Impacted directories and files 7. Architecture styles and Design patterns 8. Testing/Impact Analysis - Plans for testing the impact of interactions between the proposed enhancement and other features 8.1. Summary of the interactions of the proposed enhancement with other features 8.2. Testing Analysis 9. Potential risks due to enhancements 10. Development team issues 11. Discussions of the limitations of reported findings 12. Concurrency 13. Lessons learned 14. Conclusion 15. References 3 1. INTRODUCTION AND OVERVIEW SuperTuxKart is a free and open-source kart racing game developed in 2004. For the first assignment, we explored the game’s conceptual architecture. This was done in order to create a blueprint of what we envisioned the structure of the SuperTuxKart game to be. The second assignment involved looking into the source code to determine the concrete architecture of the game. The process helped to both verify and eliminate some of our conceptualized ideas of the game’s architecture. We also discovered a couple of new components and dependencies among the subsystems in the architecture. This final assignment is aimed at proposing an enhancement feature for SuperTuxKart that has not been implemented. The purpose of this is to delve into a more practical approach of analyzing and implementing part of a game’s architecture. The approach will be based on the knowledge from the analysis of its conceptual and concrete architecture. The current state of the system relative to the enhancement was evaluated during this process and various methods of implementation of the proposed enhancement was explored. The SAAM analysis was used to evaluate the game’s architecture in order to examine the effects of each implementation pertaining to the Non-Functional Requirements of the enhancement feature. We then were able to choose the better implementation method of the two. This report also outlines our investigations into the effects of our chosen implementation method on the files and directories at the low and high levels of the STK architecture’s subsystems. We also discussed our plans to test the interactions between our proposed enhancement, other features in the game and the potential risks associated with the enhancement feature. 2. ENHANCEMENT PROPOSAL 2.1. The Proposal - Endless Game mode The new feature proposed is the addition of an endless game mode to SuperTuxKart. The motivation behind the implementation of the feature is due to the constant scrutiny of the game in comparison with its rival, mario kart. We also wanted a feature that would appeal and entice loyal players of STK. This is to be achieved by creating intrinsic satisfaction to players experience by beating their high score. This accomplishment motivates them to seek and repeat that experience. This feature is also appropriate for this assignment as it affects a few subsystems in our architecture. Once the mode is chosen, the player does not select any of the available pre-game options such as the difficulty level and the tracks. The mode consists of several world maps connected together and is it designed to randomly choose maps to load. This gives the player the opportunity to experience racing on the locked tracks unavailable to him/her in other modes. If the player already has all the tracks unlocked, then the mode just randomly places all the tracks into the game world. An heart item for extra life, and a clock item for extra time will be created and added into the endless game mode. However, other existing game items such as the gift box and banana peel are still available to the player. In this mode, the user is given a challenge to complete within a certain time limit and the game ends whenever the time limit is up. The players are awarded achievement points for the total distance covered during the race. This motivates them to strive towards exceeding their previously attained score. To also prevent players from getting 4 bored with this new feature, they are rewarded for every 5,000m distance covered during the race. The rewards range from additional game points to the heart and clock items. When the user completes a challenge, they get transported to a new game world made up of a different track, a different challenge, and a new time limit. 2.2. The effects of the enhancement on the maintainability, evolvability, testability, performance of System Maintainability involves the ease and speed at which the system can change and adapt to new requirements. Our current architecture for the SuperTuxKart game has high cohesion amongst its subsystems and this allows for the easy implementation of the new feature into the game since every subsystem is responsible for doing one thing. This allows developers to easily maintain both the pre-existing and newly written code. They are also able to easily trace faults caused by error in the code. For example, if a glitch were to happen when loading a world map, the code associated with this feature can be easily traced since the only one component involved in map loading is also located within the controller subsystem. The capacity at which the system is able to adapt to changes over time refers to its evolvability. Since maintainability increases evolvability, the addition of this enhancement does not hinder SuperTuxKart’s ability to evolve. Testability is the ease at which faults in the software are found. For every new script file added, tests need to be written in order to ensure each new script behaves as they should and not affect negatively to the existing functionalities in the game. Performance refers to the game’s operating speed. Our new feature affects the current performance level of the game due to the requirement of loading and connecting various world maps together. This means more resources would be needed to construct this new game mode. 3. ALTERNATIVES FOR REALIZING THE PROPOSED ENHANCEMENT ARE PRESENTED We will be looking into ways to integrate the connection of the various game worlds for the different challenges in our proposed endless game mode. For the first implementation, the game worlds would be preloaded at the beginning of each challenge causing a delay in the game. Preloading a map would take about a minute at most to load all the textures, meshes and materials in the background. Also, if the player’s computer has a slow hardware disk drive it could take longer. Additionally, information on the challenge and tips for being successful will be displayed for the player to read on the loading screen during the preloading time. The second implementation involves all the game worlds set up at the beginning of the mode. So when a player finishes one challenge, they automatically get transported into the next game world. Compared to the first implementation, the satisfiability in terms of the flow of the game is better as each world transitions into the next smoothly. Players would not have to wait every time they finish the challenge for that track. However, since this implementation involves having to preload all the available maps before the games starts, a large amount of memory will be required to store them. 4. SAAM ANALYSIS FOR THE ALTERNATIVES 5 We applied the SAAM analysis to compare and contrast our two possible implementations. The analysis was used to evaluate the game’s architecture, the process of achieving specific application quality for the system and how possible changes in the future will affect the system’s quality attributes based on hypothetical cases studies. For our analysis, we outlined SuperTuxKart’s Stakeholders relative to their Non-Functional Requirements (NFRs) as shown below. Players Developers Testers Performance Efficiency Testability User Satisfaction Maintainability Maintainability Next, we examined how each of the possible implementations, as mentioned earlier, will affect these Non-Functional Requirements. The table below outlines the descriptions of the non-functional requirements in addition to the pros and cons of each implementation.