Concrete Architecture of Supertuxkart

Total Page:16

File Type:pdf, Size:1020Kb

Concrete Architecture of Supertuxkart Concrete Architecture 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 concrete architecture of SuperTuxKart. The main points touched in this paper include our modification of our conceptual architecture of the game, the derivation process of the concrete architecture, the use of the reflexion analysis model to guide the investigation process of the unexpected dependencies discovered, in-depth analysis of two of our architecture’s subsystems, walkthrough of a sequence diagram, observed design patterns, and lessons learned. SuperTuxKart’s source code components were mapped into our original conceptual architecture’s subsystems according to their expected functions. Three new subsystems were added in order to logically map the components into appropriate subsystems. We modeled the final architecture to have 8 subsystems: Input System, Controller, Game-specific Subsystems, Gameplay Foundations, Network, Utils, Library and Output System. Our initial architectural structure was layered then we modified it into an Object-Oriented structure in order to minimize the dependencies among the subsystems. We also identified the composite design pattern during the analysis of the config component in the Controller subsystem. The pattern enabled easy addition and removal of elements to and from the config component. 2 TABLE OF CONTENTS 1. Introduction and Overview 2. Conceptual Architecture 2.1. Modifications of Conceptual Architecture 2.2. Comparisons between Original and Modified Conceptual Architecture 3. Concrete Architecture 3.1. Derivation Process 3.2. Unexpected Dependencies 3.3. Description of high level architecture 3.4. Description of subsystems and interactions 4. Subsystem Analysis: Controller 5. Subsystem Analysis: Gameplay Foundations 6. Design Pattern - Composite 7. Concurrency 8. Sequence Diagram 9. Development Team Issues 10. Limitations of Reported Findings and the Problems We Faced 11. Lesson Learned 12. Conclusion 13. References 3 1. INTRODUCTION AND OVERVIEW SuperTuxKart also known as STK, is a free and open-source kart racing game initially released in 2004. STK’s architecture continues to be interesting to analyze and this becomes more evident as we look closer at the source code, made available through the course webpage. We revised our conceptual architecture from the first assignment and mapped the components of SuperTuxKart’s source code into subsystems (through the use of code analysis tool - Understand) to create the game’s concrete architecture. While initially expecting a layered structure, the Understand tool demonstrated that the subsystems could be better fitted into an object-oriented style. We then used the Reflexion Analysis process as a guide during our investigations on the differences between our conceptual and concrete architectures. We also carried an in-depth analysis of the Controller and Gameplay Foundations subsystems. The dependencies amongst each subsystems components with the rest of the architecture were also explored alongside the dependencies within each subsystem. Constructing SuperTuxKart’s concrete architecture did come with challenges however, we were able to overcome them and also learn a lot from the process. 2. CONCEPTUAL ARCHITECTURE 2.1. Modification of Conceptual Architecture Original Conceptual Architecture from the first Assignment With the aid of the Understand tool, we were able to analyze SuperTuxKart’s source code by mapping the source code components into each of the subsystems in our conceptual architecture. During this process we discovered some components that we did not anticipate during the derivation of the game’s conceptual architecture in the first assignment. These components include addons, config, font, replay, tinygettext and util. Although we were able to map most of the components, three new subsystems were added to the architecture in order to complete the logical mapping of the components. 4 The Network and Library subsystems were added to the architecture and we replaced the Core System with the Utils subsystem. In addition, we removed the Platform Independence ​ Layer from the structure because we decided that none of the source code components could be logically mapped into it. After mapping the source code’s components, we changed the structure of our architecture from a layered style to an object-oriented style. Finally, we modified our conceptual architecture diagram to reflect the modifications made. Modified Conceptual Architecture 2.2. Comparisons between Original and Modified Conceptual Architecture We changed the structure of our Conceptual architecture for SuperTuxKart from a Layered Style to an Object-Oriented Style. The reason for this change was to effectively represent the dependencies amongst the subsystems. As identified in the first assignment, our original conceptual architecture had low cohesion and low coupling amongst its components. However, with the modification of the architecture into object-oriented style the structure now has high cohesion and high coupling. It has high cohesion because the new subsystems added were able to reduce the amount of functionalities carried out by each component of the architecture. 3. CONCRETE ARCHITECTURE 3.1. Derivation Process We derived the concrete architecture of SuperTuxKart through the use of the Understand tool and the Reflexion Analysis model. Understand is a code analysis tool used to analyze and visualize a program’s source code. Using our conceptual architecture as a guide, we mapped the game’s source code components into the conceptual subsystems. From this, we were able to derive our first sketch of the concrete architecture. 5 Reflexion Analysis With the initial mapping of the source code components, there were a lot of dependencies between the architecture subsystems than we anticipated. Some of these connections were rational, while others were illogical. So we decided to re-group the components in each subsystem in order to improve the coupling and minimize the dependencies among the subsystems. For the second mapping, within the Gameplay Foundations we created the Graphics component to be composed of the modules that deal with the creation of the game’s graphics. We grouped the animations, font, graphics and guiengine into this component. With this new ​ mapping, the team was able to produce a concrete architecture for SuperTuxKart. Next we analyzed the code to understand how each subsystem functioned as well as the rationale behind the unexpected dependencies found in the architecture. 3.2. Unexpected Dependencies A fair share of the dependencies in our architecture were logical and easily predicted. However, there were some dependencies that were not anticipated. Upon further investigation they seemed intuitive and we ought to have expected them. Conceptual Architecture Concrete Architecture 6 Controller and Game-Specific Subsystems The first dependency to be investigated is the Controller depending on the Game-Specific Subsystem. The controller depends on the game-specific for over seven hundred class calls and this makes logical sense considering the game-specific subsystem is responsible for the objects in the game. The challenges in the controller calls on the karts component of the game-specific subsystems to unlock a specific kart whenever the player completes a challenge. The controller also contains the modes which depends on the game-specific tracks, karts, and items to obtain the track objects for the world frame. Replay in the controller depends on karts and tracks to obtain the replay event information. The game also has the config component in the controller using the conSTKconfig() method to call the KartProperties class in the game-specific to initialize a kart object. Also, race in the controller depends on karts and tracks to get the number of tracks from getNumberOfTracks(). Game-Specific Subsystems and Gameplay Foundations The next unexpected dependency to be discussed is the Game-Specific Subsystems depending on the Gameplay Foundations. The karts in the game-specific depends on every component in gameplay apart from the scriptengine. An example would be when a kart produces a sound such as a beep sound by accessing the sound file in gameplay. Also, the tracks component in the game-specific subsystem depends on all of gameplay’s components except the font module. For instance, tracks calls graphics to set the tracks materials’ texture and color. Output System and Game-Specific Subsystem The final unexpected dependency is the Output System depending on the Game-Specific Subsystems. There are over six hundred class calls from the output to the game-specific subsystem. Output mainly depends on the tracks and karts components of the game-specific subsystems. This is seen when the state_screens calls tracks to display the name of the kart next to it. For a player that's the name of the player, and for an AI kart it's the name of the driver. 3.3. Description of high level architecture The concrete architecture consists of eight subsystem: the Input System, Controller, Game-specific subsystems, Gameplay Foundations, Utils, Library, Network, and Output System. The two main components of our architecture are the Controller and the Gameplay Foundations. The Controller contains the achievements, challenges, config, modes, race, and replay modules. It is responsible for distributing
Recommended publications
  • Scripting Engine for Execution of Experimental Scripts on Ttü Nanosatellite
    TALLINN UNIVERSITY OF TECHNOLOGY School of Information Technologies Department of Software Science Sander Aasaväli 142757IAPB SCRIPTING ENGINE FOR EXECUTION OF EXPERIMENTAL SCRIPTS ON TTÜ NANOSATELLITE Bachelor’s thesis Supervisor: Martin Rebane MSc Lecturer Co-Supervisor: Peeter Org Tallinn 2017 TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Tarkvarateaduse instituut Sander Aasaväli 142757IAPB INTERPRETAATOR TTÜ NANOSATELLIIDIL EKSPERIMENTAALSETE SKRIPTIDE KÄIVITAMISEKS Bakalaureusetöö Juhendaja: Martin Rebane MSc Lektor Kaasjuhendaja: Peeter Org Tallinn 2017 Author’s declaration of originality I hereby certify that I am the sole author of this thesis. All the used materials, references to the literature and the work of others have been referred to. This thesis has not been presented for examination anywhere else. Author: Sander Aasaväli 22.05.2017 3 Abstract Main subject for this thesis is choosing a scripting engine for TTÜ (Tallinna Tehnikaülikool) nanosatellite. The scripting engine must provide functionality, like logging, system debugging, determination, and perform certain tasks, like communicating with the bus, file writing and reading. The engine’s language must be powerful enough to fill our needs, yet small and simple enough to have as small flash and RAM (Random Access Memory) footprint as possible. The scripting engine should also be implemented on an external board (STM32f3discovery). This way the engine’s flash footprint, RAM footprint and performance can be tested in our conditions. The outcome was that, both Pawn and My-Basic were implemented on the external board. The flash and RAM footprint tests along with performance tests were executed and results were analysed. This thesis is written in English and is 38 pages long, including 5 chapters, 6 figures and 2 tables.
    [Show full text]
  • Tomasz Dąbrowski / Rockhard GIC 2016 Poznań WHAT DO WE WANT? WHAT DO WE WANT?
    WHY (M)RUBY SHOULD BE YOUR NEXT SCRIPTING LANGUAGE? Tomasz Dąbrowski / Rockhard GIC 2016 Poznań WHAT DO WE WANT? WHAT DO WE WANT? • fast iteration times • easy modelling of complex gameplay logic & UI • not reinventing the wheel • mature tools • easy to integrate WHAT DO WE HAVE? MY PREVIOUS SETUP • Lua • not very popular outside gamedev (used to be general scripting language, but now most applications seem to use python instead) • even after many years I haven’t gotten used to its weird syntax (counting from one, global variables by default, etc) • no common standard - everybody uses Lua differently • standard library doesn’t include many common functions (ie. string.split) WHAT DO WE HAVE? • as of 2016, Lua is still a gold standard of general game scripting languages • C# (though not scripting) is probably even more popular because of the Unity • Unreal uses proprietary methods of scripting (UScript, Blueprints) • Squirrel is also quite popular (though nowhere near Lua) • AngelScript, Javascript (V8), Python… are possible yet very unpopular choices • and you can always just use C++ MY CRITERIA POPULARITY • popularity is not everything • but using a popular language has many advantages • most problems you will encounter have already been solved (many times) • more production-grade tools • more documentation, tutorials, books, etc • most problems you will encounter have already been solved (many times) • this literally means, that you will be able to have first prototype of anything in seconds by just copying and pasting code • (you can
    [Show full text]
  • Openbsd Gaming Resource
    OPENBSD GAMING RESOURCE A continually updated resource for playing video games on OpenBSD. Mr. Satterly Updated August 7, 2021 P11U17A3B8 III Title: OpenBSD Gaming Resource Author: Mr. Satterly Publisher: Mr. Satterly Date: Updated August 7, 2021 Copyright: Creative Commons Zero 1.0 Universal Email: [email protected] Website: https://MrSatterly.com/ Contents 1 Introduction1 2 Ways to play the games2 2.1 Base system........................ 2 2.2 Ports/Editors........................ 3 2.3 Ports/Emulators...................... 3 Arcade emulation..................... 4 Computer emulation................... 4 Game console emulation................. 4 Operating system emulation .............. 7 2.4 Ports/Games........................ 8 Game engines....................... 8 Interactive fiction..................... 9 2.5 Ports/Math......................... 10 2.6 Ports/Net.......................... 10 2.7 Ports/Shells ........................ 12 2.8 Ports/WWW ........................ 12 3 Notable games 14 3.1 Free games ........................ 14 A-I.............................. 14 J-R.............................. 22 S-Z.............................. 26 3.2 Non-free games...................... 31 4 Getting the games 33 4.1 Games............................ 33 5 Former ways to play games 37 6 What next? 38 Appendices 39 A Clones, models, and variants 39 Index 51 IV 1 Introduction I use this document to help organize my thoughts, files, and links on how to play games on OpenBSD. It helps me to remember what I have gone through while finding new games. The biggest reason to read or at least skim this document is because how can you search for something you do not know exists? I will show you ways to play games, what free and non-free games are available, and give links to help you get started on downloading them.
    [Show full text]
  • Teaching Video Game Translation: First Steps, Systems and Hands-On Experience Ensinando Tradução De Videogame: Primeiros Passos, Sistemas E Experiência Prática
    http://periodicos.letras.ufmg.br/index.php/textolivre Belo Horizonte, v. 11, n. 1, p. 103-120, jan.-abr. 2018 – ISSN 1983-3652 DOI: 10.17851/1983-3652.11.1.103-120 TEACHING VIDEO GAME TRANSLATION: FIRST STEPS, SYSTEMS AND HANDS-ON EXPERIENCE ENSINANDO TRADUÇÃO DE VIDEOGAME: PRIMEIROS PASSOS, SISTEMAS E EXPERIÊNCIA PRÁTICA Marileide Dias Esqueda Universidade Federal de Uberlândia [email protected] Érika Nogueira de Andrade Stupiello Universidade Estadual Paulista “Júlio de Mesquista Filho” [email protected] ABSTRACT: Despite the significant growth of the game localization industry in the past years, translation undergraduate curricula in Brazil still lacks formal training in game localization, often leaving novice translators no alternative but to search for the required skills informally in game translation communities. Designing a video game localization course in translation undergraduate programs in public universities is a complex task in today’s reality, particularly due to limited access to free and authentic materials. This paper describes a game localization teaching experience at the undergraduate level with special focus on how to handle the linguistic assets of the online race game SuperTuxKart, while trying to shed some light on potential translation requirements of entertainment software and its incorporation into translation programs. KEYWORDS: video game localization; video game translation; translator training; translation undergraduate program; SuperTuxKart. RESUMO: A despeito do significativo crescimento da indústria de localização de games nos últimos anos, os currículos dos cursos de graduação em tradução ainda carecem de formação específica na localização de games, geralmente não oferecendo ao tradutor em formação alternativas outras senão a de adquirir informalmente, ou em comunidades on- line de gamers, os conhecimentos sobre a tradução desse tipo de material.
    [Show full text]
  • Ultimate++ Forum
    Subject: AngelScript - AngelCode Scripting Library Posted by Sender Ghost on Fri, 18 Nov 2011 09:37:26 GMT View Forum Message <> Reply to Message Homepage: http://www.angelcode.com/angelscript/ License: zlib Version: 2.30.0 (February 22nd, 2015) Description: The AngelCode Scripting Library, or AngelScript as it is also known, is an extremely flexible cross-platform scripting library designed to allow applications to extend their functionality through external scripts. It has been designed from the beginning to be an easy to use component, both for the application programmer and the script writer. Efforts have been made to let it call standard C functions and C++ methods with little to no need for proxy functions. The application simply registers the functions, objects, and methods that the scripts should be able to work with and nothing more has to be done with your code. The same functions used by the application internally can also be used by the scripting engine, which eliminates the need to duplicate functionality. For the script writer the scripting language follows the widely known syntax of C/C++, but without the need to worry about pointers and memory leaks. Contrary to most scripting languages, AngelScript uses the common C/C++ datatypes for more efficient communication with the host application. Documentation: http://www.angelcode.com/angelscript/documentation.html In the attachments you could find AngelScript source code, add-ons, samples, converted to U++ packages and documentation. To note: There were minor changes for include files for original sources to adapt for U++ package structure. Edit: Updated to 2.30.0 version.
    [Show full text]
  • 1. with Examples of Different Programming Languages Show How Programming Languages Are Organized Along the Given Rubrics: I
    AGBOOLA ABIOLA CSC302 17/SCI01/007 COMPUTER SCIENCE ASSIGNMENT ​ 1. With examples of different programming languages show how programming languages are organized along the given rubrics: i. Unstructured, structured, modular, object oriented, aspect oriented, activity oriented and event oriented programming requirement. ii. Based on domain requirements. iii. Based on requirements i and ii above. 2. Give brief preview of the evolution of programming languages in a chronological order. 3. Vividly distinguish between modular programming paradigm and object oriented programming paradigm. Answer 1i). UNSTRUCTURED LANGUAGE DEVELOPER DATE Assembly Language 1949 FORTRAN John Backus 1957 COBOL CODASYL, ANSI, ISO 1959 JOSS Cliff Shaw, RAND 1963 BASIC John G. Kemeny, Thomas E. Kurtz 1964 TELCOMP BBN 1965 MUMPS Neil Pappalardo 1966 FOCAL Richard Merrill, DEC 1968 STRUCTURED LANGUAGE DEVELOPER DATE ALGOL 58 Friedrich L. Bauer, and co. 1958 ALGOL 60 Backus, Bauer and co. 1960 ABC CWI 1980 Ada United States Department of Defence 1980 Accent R NIS 1980 Action! Optimized Systems Software 1983 Alef Phil Winterbottom 1992 DASL Sun Micro-systems Laboratories 1999-2003 MODULAR LANGUAGE DEVELOPER DATE ALGOL W Niklaus Wirth, Tony Hoare 1966 APL Larry Breed, Dick Lathwell and co. 1966 ALGOL 68 A. Van Wijngaarden and co. 1968 AMOS BASIC FranÇois Lionet anConstantin Stiropoulos 1990 Alice ML Saarland University 2000 Agda Ulf Norell;Catarina coquand(1.0) 2007 Arc Paul Graham, Robert Morris and co. 2008 Bosque Mark Marron 2019 OBJECT-ORIENTED LANGUAGE DEVELOPER DATE C* Thinking Machine 1987 Actor Charles Duff 1988 Aldor Thomas J. Watson Research Center 1990 Amiga E Wouter van Oortmerssen 1993 Action Script Macromedia 1998 BeanShell JCP 1999 AngelScript Andreas Jönsson 2003 Boo Rodrigo B.
    [Show full text]
  • Replacing Cellular with Wifi Direct Communication for a Highly Interactive, High Bandwidth Multiplayer Game
    Replacing Cellular with WiFi Direct Communication for a Highly Interactive, High Bandwidth Multiplayer Game by Pablo Ortiz B.S., University of California, Santa Barbara, 2011 Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degree of Master of Science in Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE F TECHNOLOGY at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY ICT 2 2013 September 2013 LIBRARIES @ Massachusetts Institute of Technology 2013. All rights reserved. Author ................................................... Department of Electrical Engineering and Comp jcience August 6, 2013 C ertified by ............. ... /.................................. .. Li-Shiuan Peh Professor Thesis Supervisor Accepted by ....................... Le Kolodziejski Chair, Department Committee onraduate Students Replacing Cellular with WiFi Direct Communication for a Highly Interactive, High Bandwidth Multiplayer Game by Pablo Ortiz Submitted to the Department of Electrical Engineering and Computer Science on August 6, 2013, in partial fulfillment of the requirements for the degree of Master of Science in Electrical Engineering and Computer Science Abstract The objective of this work is to explore the benefits of replacing cellular with Wi-Fi Direct communication in mobile applications. Cellular connections consume significant power on mobile devices and are too slow for many highly interactive mobile applications. Wi-Fi Direct, the recently released wireless standard, promises to provide the speed, power effi- ciency, and security of Wi-Fi to devices communicating within a short range. Using Wi-Fi performance as a baseline, the performance of a proof of concept system, Super Tux Kart Direct, is evaluated when communication is enabled by either LTE or Wi-Fi Direct. At the time of writing and to the best of the author's knowledge, Super Tux Kart Direct is the first, real-time, multiplayer kart racing game playable via Wi-Fi Direct.
    [Show full text]
  • A Classification of Scripting Systems for Entertainment and Serious
    Published in Proceedings of VS-GAMES 2011: 3rd International Conference on Games and Virtual Worlds for Serious Applications, pages 47-54; definitive version available from http://dx.doi.org/10.1109/VS-GAMES.2011.13 A Classification of Scripting Systems for Entertainment and Serious Computer Games Eike Falk Anderson Interactive Worlds ARG Coventry University Coventry, UK [email protected] Abstract—The technology base for modern computer games is usually provided by a game engine. Many game engines have built-in dedicated scripting languages that allow the development of complete games that are built using those engines, as well as extensive modification of existing games through scripting alone. While some of these game engines implement propri- etary languages, others use existing scripting systems that have been modified according to the game engine’s requirements. Scripting languages generally provide a very high level of abstraction method for syntactically controlling the behaviour of their host applications and different types of scripting system allow different types of modification of their underlying host application. In this paper we propose a simple classification for scripting systems used in computer games for entertainment and serious purposes. Index Terms—Data-Driven Game Development, Scripting Language Classification. Fig. 1. A typical game engine. If the engine core includes a scripting system, then application specific scripts are loaded as external game assets and there I. INTRODUCTION may be no other application specific code. The computer games industry is still a young industry which continues to have a lot of potential for growth. This is especially so, since games have broken out of the domain Consequently it is no surprise that scripting systems are of pure entertainment and are now used in a wide variety of considered one of the most important developer tools that are different situations.
    [Show full text]
  • PATACS Posts Newsletterofthe Potomacareatechnology and Computersociety September 201 6 Page 1
    PATACS Posts Newsletterofthe PotomacAreaTechnology and ComputerSociety September 201 6 www.patacs.org Page 1 Musings of an Apple Tyro • By 2026 such CPUs are expected to have more by Lorrin R. Garson transistors than the human brain has neurons Potomac Area Technology and Computer (~100 billion). Society newslettercolumnist (at) patacs.org • Intel manufacturing works on a 14 nm scale. In comparison a human red blood cell is 7,000 nm 2016 Computex across and a typical virus is 100 nm in size. See http://bit.ly/1rvQLZQ for an overview of this Look Into My Eyes… Taipei trade show, including a 10-core CPU from Intel (at $1,723!), 7th generation APUs from AMD, Researchers at Brown University new GPUs from AMD and Nvidia, new have developed eye-tracking motherboards, a 512 GB SSD from Samsung the technology that can be added to size of a postage stamp, etc. any Web site. To quote from http://bit.ly/1tDn2jL How Intel Makes a Chip Overall, it could help website developers prioritize Bloomberg Businessweek (June 13-June 26, 2016, popular or eye-catching content, optimize a page’s pp. 94-100) has published an excellent article on usability, or place and price advertising space. how Intel manufactures computer chips. Here Further ahead, potential applications could include are a few highlights: eye-controlled gaming or broader accessibility. • It costs at least $8.5 billion to create a factory to build chips. Mac Internet Recovery • Starting with a 12-inch silicon disk, each disk yields 122 Xeon E5 CPUs selling for $4,115 each.
    [Show full text]
  • Blender for Freebsd
    Blender for freebsd NOTE: this page is now outdated, should be updated for FreeBSD 10, GIT and Blende Blender will build on FreeBSD, mostly steps are similar to Linux. blender 3D modeling/rendering/animation/gaming package c_5 Any concerns regarding this port should be directed to the FreeBSD Ports mailing list via. Hello, I would like to ask, if there is Blender ( or newer) for FreeBSD. Thanks for In Blender Package | The FreeBSD Forums. The default configuration for blender on FreeBSD does not include cycles. If you install using pkg install graphics/blender then it will not be. As I remember there were binary file of Blender for FreeBSD which works perfect (FreeBSD Blender with Cycles enabled doesn't work) but now. After a few days ago sharing a list of why you should use FreeBSD as said . fluidal simulations and for our PR stuff we prepare with Blender. I notice that the System Requirements page at mentions Blender is available for FreeBSD Blender in Linux or FreeBSD? Blender October 17th, by xglasyliax. K. Blender October 17th, by xglasyliax. 2K. FreeBSD rc2. October 13th. Recently, I bought a laptop and put FreeBSD with a graphical desktop on it. Currently, Blender can not be found in the binary packages. There's a lot of mixed BSD news in there, and no main article that's on Blender. Anyway, it's good to see another free PDF issue. From the table. Blender has proven to be an extremely fast and versatile design instrument. The software has a personal touch, offering a unique approach to.
    [Show full text]
  • Experimental Evaluation of the Smartphone As a Remote Game Controller for PC Racing Games
    Thesis no: MSCS-2014-01 Experimental evaluation of the smartphone as a remote game controller for PC racing games Marta Nieznańska Faculty of Computing Blekinge Institute of Technology SE-371 79 Karlskrona Sweden This thesis is submitted to the Faculty of Computing at Blekinge Institute of Technology in partial fulfillment of the requirements for the degree of Master of Science in Computer Science. The thesis is equivalent to 20 weeks of full time studies. Contact Information: Author: Marta Nieznańska E-mail: [email protected] External advisor: Prof. Marek Moszyński Faculty of Electronics, Telecommunications and Informatics Gdańsk University of Technology University advisor: Dr. Johan Hagelbäck Department of Creative Technologies Faculty of Computing Internet : www.bth.se/com Blekinge Institute of Technology Phone : +46 455 38 50 00 SE-371 79 Karlskrona Fax : +46 455 38 50 57 Sweden ii ABSTRACT Context. Both smartphones and PC games are increasingly commonplace nowadays. There are more and more people who own smartphones and – at the same time – like playing video games. Since the smartphones are becoming widely affordable and offer more and more advanced features (such as multi-touch screens, a variety of sensors, vibration feedback, and others), it is justifiable to study their potential in new application areas. The aim of this thesis is to adapt the smartphone for the use as a game controller in PC racing games and evaluate this solution taking into account such aspects as race results and user experience. Objectives. To this end, two applications were developed - a game controller application for Android-based smartphones (i.e.
    [Show full text]
  • Need for Tux Assignment 1 Conceptual Architecture of Super Tux Kart
    Need for Tux Assignment 1 Conceptual Architecture of Super Tux Kart Morgan Scott 10149124 Daniel Lucia 10156114 PJ Murray 10160261 Michael Wilson 10152552 ​ Matthew Pollack 10109172 Nicholas Radford 10141299 Table of Contents Abstract ------------------------------------------------------------------------------------------------------- 3 Introduction ------------------------------------------------------------------------------------------------- 3 Derivation of Conceptual Architecture ---------------------------------------------------------- 4 Alternate Architectures -------------------------------------------------------------------------------- 6 Sequence Diagrams ------------------------------------------------------------------------------------- 6 Modules ------------------------------------------------------------------------------------------------------- 7 Gameplay ------------------------------------------------------------------------------------------- 7 Graphics -------------------------------------------------------------------------------------------- 9 Game Support ---------------------------------------------------------------------------------- 11 Physics -------------------------------------------------------------------------------------------- 12 Utilities --------------------------------------------------------------------------------------------- 14 Lessons Learned ---------------------------------------------------------------------------------------- 14 Limitations ------------------------------------------------------------------------------------------------
    [Show full text]