neo tux
play

Neo-Tux Group Members: Latifa Azzam - 10100517 Zainab Bello - - PowerPoint PPT Presentation

Neo-Tux Group Members: Latifa Azzam - 10100517 Zainab Bello - 10147946 Yuen Ting Lai (Phoebe) - 10145704 Jia Yue Sun (Selena) - 10152968 Shirley (Xue) Xiao - 10145624 Wanyu Zhang - 10141510 Presentation Overview Conceptual Architecture


  1. Neo-Tux Group Members: Latifa Azzam - 10100517 Zainab Bello - 10147946 Yuen Ting Lai (Phoebe) - 10145704 Jia Yue Sun (Selena) - 10152968 Shirley (Xue) Xiao - 10145624 Wanyu Zhang - 10141510

  2. Presentation Overview ● Conceptual Architecture ● Derivation Process - Reflexion Analysis Concrete Architecture ● ○ Subsystems Overview ○ Subsystems Analysis Unexpected Dependencies ● ● Sequence Diagram ● Design Patterns Concurrency ● Limitations of Reported Findings ● ● Lessons Learned ● Conclusion

  3. Initial Conceptual Architecture

  4. Final Conceptual Architecture ● Derived the modified architecture after mapping the source code components into the architecture subsystems. Added three new subsystems ● Removed the Platform ● Independence Layer

  5. Mapping of Subsystems ● Input System: input, io Controller: achievements, challenges, config, modes, race, replay ● Game-Specific subsystem: items, karts, tracks ● ● Gameplay Foundation: audio, graphics, physics, scriptengine (graphics: animations, font, graphics, guiengine) Library: lib ● Utils: tinygettext, utils ● ● Network: network, online, addons ● Output System: states_screens

  6. Comparison between Original and Revised Conceptual Architecture ● Architecture style modified ● Original Conceptual architecture was layered. Revised architecture is now Object-Oriented ● Low Cohesion and Low Coupling observed in the original architecture ● High Cohesion and High Coupling observed in the revised architecture

  7. Reflexion Analysis

  8. Derivation Process ● Grouped components from the SuperTuxKart source code into subsystems (using the Understand tool) Derived the first sketch of the concrete architecture ● ● Compared the conceptual architecture and concrete architecture ● Investigated the gaps observed from the comparison Decided to perform a second mapping, in which three new subsystems were ● added: utils, library and network. ● Also removed the Core System

  9. Concrete Architecture

  10. Subsystems Overview ● Input System Controller ● Game-Specific Subsystems ● ● Gameplay Foundations ● Utils Library ● Network ● ● Output

  11. Input System ● Components: input and io ● Input: responsible for obtaining input from the user. IO: transfer data to or from a computer. ● Controller Components: race, mode, config, achievements, ● challenges and replay ● responsible for distributing data to the appropriate subsystems depending on the user’s input stores data on the game challenge and the player’s ● achievements.

  12. Game-Specific Subsystems Components: items, karts and tracks ● ● Items: contains the powerup obtained from the giftboxes ● Karts: contains 3D Kart model and the properties of the karts. It also contains several animations such as the rescue animation for a specific kart Tracks: contains information about the various tracks in the game ● Gameplay Foundations ● Components: audio, physics, graphics, and scriptengine ● Audio: controls the sounds of the game Physics and graphics: shows the collisions between the game objects ● Scriptengine: responsible for the game code ●

  13. Utils ● Components: game utils and tinygetext ● Game utils provides facilities such as management of protocols in the game ● Tinygettext deals with the language options in the game Library ● Collection of the precompiled routines the game uses ● Contains bullet collision and dynamics, irrlicht engine, angelscript and zlib. ● Angelscript is the scripting language used in the game ● Zlib is used to compress files

  14. Network ● Components: network, addons, and online ● Responsible for player profiles, storing online related properties ● Addons: downloadable extensions ● Online: HTTP(s) requests, sign in process Output System ● Components: state_screens ● Responsible for generating output depending on the player’s input

  15. Subsystem Analysis: Controller ● Race and Mode - works with all the other subsystems Replay - communicates with gameplay foundations and game-specific ● subsystem ● Config - interacts with gameplay foundations and network ● Challenges - transfers data between gameplay foundations and game-specific subsystem. Output system also depends on challenges Achievements - Output system obtains data from achievements ●

  16. Subsystem Analysis: Controller

  17. Subsystem Analysis: Gameplay Foundations ● Graphics ● Physics ● Scriptengine ● Audio

  18. Unexpected Dependencies Conceptual Architecture Concrete Architecture

  19. Controller and Game-Specific Subsystems ● Controller components: challenges, replay, config, race, modes, and achievements Game-Specific components: tracks, karts, items ● ● Unexpected Dependency: controller depends on game specific subsystem ● Challenges, Replay and Race depend on karts and tracks Modes depends on tracks, karts and items ● Config depends on karts and items. ●

  20. Controller and Game-Specific

  21. Game-Specific Subsystems and Gameplay Foundations ● Game-Specific components: items, karts, tracks Gameplay components: audio, physics, scriptengine, Graphics (animations, ● font, graphics, guiengine) ● Unexpected Dependency: game-specific depends on gameplay ● Karts depends on every components in gameplay except scriptengine Items depends on physics, graphics and audio ● Tracks depends on evey components in gameplay except font ●

  22. Game-Specific Subsystems and Gameplay Foundations

  23. Output System and Game-Specific Subsystems ● Output components: state_screens Game-Specific components: tracks, karts, items ● Unexpected Dependency: Output depends on Game-Specific ● ● State_screens depends on every components in game-specific

  24. Sequence Diagram

  25. Design Patterns ● Composite design pattern identified from the analysis of the source code

  26. Concurrency Concurrency in SuperTuxKart includes multiple computations performed at the same time. While the game is running: ● graphics and audio are executed simultaneously ● physics exists concurrently with animations ○ e.g the swatter needs the angle calculations (from the physics component) to get the location of the area the kart will be flattened ○ e.g the physics and animations create the kart motion space in the 3D world

  27. Development Team Issues ● Team size: SuperTuxKart needs more contributing developers, testers, and artists to work on the game ● The team had limited influence on the styles of the game Karts since they were created by various artists ● Unfinished work by various contributors to the development of STK Limitations of the Reported Findings ● Not all of SuperTuxKart’s source code were well documented The Understand tool crashes due to bugs ● ● Understand isn’t a real time collaboration tool ● Understand also gives an unclear representation of the dependencies between the concrete architecture’s subsystems

  28. Limitations of the Reported Findings

  29. Lessons Learned ● Using a tool to analyze code is more efficient Ways to analyze a given source code using the Understand tool ● Modifications were made to the conceptual architecture after analyzing the ● source code ● Use of Reflexion Analysis to derive the Concrete Architecture

  30. Conclusion ● Conceptual architecture changed from layered to Object-Oriented added and deleted components ○ ● The Conceptual architecture has high cohesion & high coupling ● Used the Understand tool to extract SuperTuxKart’s concrete architecture Analyzed the architecture’s subsystems ○

  31. References http://freegamer.blogspot.ca/2012/02/developer-interview-supertuxkart-team.ht ml http://supertuxkart.sourceforge.net/doxygen/classIntUserConfigParam.html

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend