Concrete Architecture of SuperTuxKart

Slides:



Advertisements
Similar presentations
Operating System.
Advertisements

Executional Architecture
Information Systems Analysis and Design
1 Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
THQ/Gas Powered Games Supreme Commander and Supreme Commander: Forged Alliance Thread for Performance.
Discovering Computers: Chapter 1
Controlled Scanning of Microtiter Plates through the Use of LabVIEW® Erica Chin Anton Edmund Samir Laoui May 14, 2008.
Computers: Tools for an Information Age
CHAPTER 17 Creating an Interactive 3D Environment © 2008 Cengage Learning EMEA.
Distribution of Marks Internal Sessional Evaluation Assignments – 10 Quizzes – 10 Class Participation Attendence – 5 Mid – Term Test – 25 External Evaluation.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
The Design Discipline.
Antigone Engine Kevin Kassing – Period
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
INTRODUCTION TO COMPUTING
Implementation Considerations Yonglei Tao. Components of Coding Standards 2  File header  file location, version number, author, project, update history.
Creating A 3-D Game With Spark Engine Lauren Bissett, Dan Maguire, and Nicholas Woodfield.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
An Introduction to Software Architecture
CS 160: Software Engineering October 8 Class Meeting
Simon 2 : Multiplayer Memory Game Joshua Gomez & Travis Pinnick.
Computing and the Web Operating Systems. Overview n What is an Operating System n Booting the Computer n User Interfaces n Files and File Management n.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
CHAPTER TEN AUTHORING.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Approaching a Problem Where do we start? How do we proceed?
Funativity CS 426 Fall Team Members David Smits – Lead Chintan Patel – Programmer Jim Gagliano – Programmer Ashleigh Wiatrowski - Artist.
Chapter 13 Logical Architecture and UML Package Diagrams 1CS6359 Fall 2012 John Cole.
Games Development 2 Concurrent Programming CO3301 Week 9.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 12-5 Software Engineering Design Goals.
1 CMPT 275 High Level Design Phase Modularization.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
Concrete Architecture of PostgreSQL. Overview – Derivation Process – Conceptual Architecture Revisited – High Level Conceptual Dependencies – High Level.
Super Pong Andrew S. Dunsmore CSC436 August 2004.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
1 AQA ICT AS Level © Nelson Thornes 2008 Operating Systems What are they and why do we need them?
OPERATING SYSTEMS (OS) By the end of this lesson you will be able to explain: 1. What an OS is 2. The relationship between the OS & application programs.
Technician Table Editor Company: DVTel Academic advisor: Professor Ehud Gudes Technical advisor: Menny Even Danan Team: Olga Peled Doron Avinoam.
Game & Graphics Engines Tyler Hollingsworth. The Difference A game engine is a software system designed for the creation and development of video games.
WHAT IS COMPUTER ? . A computer is a complex system consisting of both hardware and software components.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Network Controllable MP3 Player
Chapter Objectives In this chapter, you will learn:
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Game Architecture Rabin is a good overview of everything to do with Games A lot of these slides come from the 1st edition CS 4455.
Operating System.
Piano Chord Builder Artem Kuligin CS 470 6/17/2018 3:08 AM
Complexity Time: 2 Hours.
CHAPTER 8 Multimedia Authoring Tools
Managed DirectX Joe Gavin.
Chapter 1 The Systems Development Environment
TerraForm3D Plasma Works 3D Engine & USGS Terrain Modeler
 Method 1: Close all of your unnecessary third-party software installed in the device  Sometimes, this error problem may occur in iPhone, iPad or iPod.
Programmable Logic Controllers (PLCs) An Overview.
Software testing strategies 2
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
CS703 - Advanced Operating Systems
Starting Design: Logical Architecture and UML Package Diagrams
Software models - Software Architecture Design Patterns
Game Loop Update & Draw.
Requirements Management
An Introduction to Software Architecture
Introduction to Software Planning and Design
Model, View, Controller design pattern
Design Yaodong Bi.
Chapter 6: Architectural Design
What is a System? A system is a collection of interrelated components that work together to perform a specific task.
Presentation transcript:

Concrete Architecture of SuperTuxKart Group Name: Sensible Chuckle Members: Sam Strike, Michael Spiering, Ben Mitchell, Alex Mersereau, Will Gervais, David Cho

Overview Conceptual Architecture Original Revised Concrete Architecture Derivation Process Conceptual vs. Concrete Architectures Comparison Reflexion Analysis Subsystem Analysis Sequence Diagrams Concurrency Team Issues Problems We Faced / Limitations of Reported Findings Lessons Learned Conclusion

Original Conceptual Architecture

Revised Conceptual Architecture

Concrete Architecture Derivation We used an understand to map source directories to our conceptual architecture components Observed the resulting concrete diagram Compared conceptual to concrete, add or removed subsystems Remap source directories that caused unnecessary connections Repeat process until we arrive at our finalized version

Considered Alternatives We considered a layered style but the level of coupling led us to reaffirm our choice of object oriented Including guiengine state_screens in the Graphics subsystem Using a player manager subsystem from our original conceptual diagram Including addons in the Core Systems subsystem

Concrete Architecture Cohesion: Relatively low Strange inclusions of Audio inputs Coupling: Very high Near complete graph

Conceptual Vs Concrete

Reflexion Analysis

Controller Handles user's input Holds information about different hardware controllers (keyboard, gamepad, wiimote) Depends on: Core Systems Libraries Game Specific Subsystems Graphics Physics Hardware Devices

Game Specific Subsystems Stores the game state Properties about game objects Depends on Physics Network Controller Audio Graphics Core systems

Game Specific Subsystems

Game Specific Subsystems Very High coupling, almost a complete graph Results in a difficult maintenance process

Physics Calculates where karts should be moved to Depends on: Libraries Game Specific subsystems Graphics Controller Core Systems

Graphics Render animations of the game and handles graphical processes of the software such as particles, meshes, special effects, shadow and lighting. Depends on: Core Systems Libraries Game Specific Subsystems Physics Controller Audio

Audio Coordinates the playing of sound effects and music Depends on: Game Specific Subsystems Controller Core Systems Libraries

Libraries Third-party tools developed outside of the SuperTuxKart project Relied upon by every software subsystem Depends on: Controller Graphics Core Systems Controller for Wiimoting Graphics for Irrlict Core Systems for error handling

Network Handles player profile management and acquisition of addons Depends on: Core Systems Libraries Game Specific Subsystems Graphics Controller Source code contained the beginnings of online multiplayer support Libraries for irrlict GSS for addons

Core Systems Error handling Synchronise output GUI engine Depends on: Libraries Game Specific Subsystems Graphics Controller Physics

Core Systems

Core Systems utils: crash_reporting, debugging, logging guiengine: event_handler, screen_loader states_screens: all possible game screens io: file_manager

Hardware Devices Separate from the software parts of the architecture The physical device(s) operated by the users that identify user input and display content Depends on: Audio Graphics Audio for playing content Graphics for displaying content

Sequence Diagram #1

Sequence Diagram #2

Concurrency Multiplayer game, multiple hardware input devices that must be handled simultaneously Game State updates track of all player’s karts, power ups, and race stats in real time Audio must be concurrently managed alongside game conditions, not just as background music Download requests take place in a separate thread so they can be interrupted without stalling the game.

Team Issues Difficulty in syncing sound and animations High coupling between subsystems creates potential for failures to propagate Third-party tools and addons need to remain compatible and reliable

Problems We Faced / Limitations of Findings Understand had a few technical issues (pictured right) For some, it wouldn’t even download Some elements of the source code are not being used by the live game (preliminary online multiplayer code) Created increased complexity of architecture diagrams As an outside party, we can only say so much about the rationale behind certain architecture decisions Sometimes guesses can only be guesses

Lessons Learned Once we got a good grasp of Understand, the project came together much more easily Tracing dependencies to their source(s) helped lay some groundwork for Assignment 3 We utilized software to share our architecture and diagrams between group members as it was being developed

Conclusion Heavily revised conceptual architecture Created concrete architecture within Understand and tweaked a few categories Compared revised conceptual architecture with concrete architecture and investigated irrational dependencies Updated sequence diagrams for architectural changes