Sensible Chuckle SuperTuxKart Concrete Architecture Report
|
|
- Cassandra Owens
- 6 years ago
- Views:
Transcription
1 Sensible Chuckle SuperTuxKart Concrete Architecture Report Sam Strike Ben Mitchell Alex Mersereau Will Gervais David Cho Michael Spiering Table of Contents Abstract Page 2 Architecture Derivation Process Page 2 Conceptual Architecture Original Conceptual Architecture..... Page 3 Revised Conceptual Architecture.... Page 3 Concrete Architecture Concrete Architecture Overview Page 4 Conceptual Vs. Concrete Page 4 Reflexion Analysis Page 5 Architecture Subsystems Game Specific Subsystems Page 5 Graphics..... Page 7 Controller.... Page 7 Physics Page 7 Audio Page 8 Core Systems..... Page 8 Network..... Page 9 Libraries Page 10 Sequence Diagrams Sequence Diagram # Page 10 Sequence Diagram #2... Page 11 Concurrency Page 11 Division of Responsibilities and Development Team Issues.... Page 12 Lessons Learned Page 12 Conclusion.. Page 12 References..... Page 13
2 Abstract As a free, open-source game project, SuperTuxKart has seen a wide variety of talents and contributions since its release in A racing game created in the style of the Mario Kart series, SuperTuxKart has players controlling one of a multitude of karts, vehicles in which they race other player- or AI-controlled karts on various tracks. As with any piece of software, SuperTuxKart s inner workings can be mapped to a layout known as a software architecture. In the previous assignment, we created a conceptual architecture based on what we thought SuperTuxKart s functionality would best fit. This time around, we utilized a program known as Understand to create a concrete architecture, drawing directly on the function calls and interconnectivity of SuperTuxKart s actual source code. We then compared both diagrams and did an analysis on their points of convergence and divergence. Architecture Derivation Process The first step in the formulation of our concrete architecture was to evaluate our original conceptual architecture from assignment 1 and see if it still held, based on the feedback we received and our new ideas. We revised quite a few aspects, such as introducing the new subcomponents Core Systems and Controller, while eliminating User Interface and Player Manager, among others. Once we were happy with this new layout, it was time to move from conceptual to concrete. We used Understand to map the source directories of SuperTuxKart to subcomponents in our conceptual architecture, and examined the resulting dependency graph. If we discovered dependencies between subcomponents that just didn t make sense, we traced these connections back to their sources. We either re-mapped directories/files to different subcomponents that might produce more logical results, or we labelled said dependencies as unexpected in our comparison between our two architectures. The dependency graph was then re-examined, and the process was repeated until we felt that no further changes to our concrete architecture were necessary. The result of our efforts is pictured below.
3 Conceptual Architecture Original Conceptual Architecture Revised Conceptual Architecture Modifications we made to our original architecture include the removal of User Interface and the relocation of Player Manager to inside Game Specific Subsystems. We decided that our concept of User Interface in our original architecture was more of a hardware implementation, which did not fit inside the software architecture. We
4 also decided that the Player Manager was actually too low level; a component of a subsystem rather than its own subsystem. Furthermore, some of the features of Player Manager, such as achievements and config, have a close relationship with other components inside Game Specific Subsystems (and Network, which interacts with Game Specific Subsystems), so it made the most sense to combine the two. Concrete Architecture Concrete Architecture Overview This is the outcome of our use of the Understand tool with our revised conceptual architecture as a baseline. Conceptual vs. Concrete Conceptual Concrete
5 As shown in the diagram above, the concrete architecture consists of many unexpected dependencies that were defined from a source code level. We ve taken a look at the origin of these dependencies to find the rationale behind such interactions, which are further explained in each subsystem s section. Reflexion Analysis Reflexion Analysis is a mechanism used to measure the differences between a conceptual architecture and a concrete architecture. This process allows one to define what is absent or misplaced between the architectures by examining the dependencies in the concrete architecture that were not anticipated in the conceptual architecture. This is then followed by an investigation of these unexpected dependencies to decide whether architectural changes need to be made. Architecture Subsystems Game Specific Subsystems Game Specific Subsystems makes up the core of the gameplay entities that users interact with while playing SuperTuxKart. It stores information about the game state and properties about game objects, such as a kart's speed or weight. It also stores game unlocks and player scores.
6 An unexpected dependency that we found was that Game Specific Subsystems depended on Network. This is because, when an addon is downloaded from the Internet, the data contained in the addon must be loaded into the game files. Game Specific Subsystems Internal View Game Specific Subsystems can be broken down into five subcomponents: Game Structure, Game Objects, Player Management, Scripts and States. Game Structure consists of the race data and different race modes that help contribute to the overall gameplay of a race. Game Objects are the dynamic objects within the race world, such as karts, items, and tracks that are subject to change within the world. Player Management deals with all the achievements and challenges a user can unlock from the game. Scripts holds the script engines for all the dynamic game objects. Lastly, States handles all the various screens a user can encounter while playing SuperTuxKart. By splitting Game Specific Subsystems into five subcomponents, each subcomponent was dependent on each other, and coupling was very high. Game Specific Subsystems Full View
7 In the overall architecture, each subsystem is dependent on most of the five subcomponents within Game Specific Subsystems. This results in a difficult maintenance process for this subsystem because, if the development team wants to make a change, then it will affect many other parts of the architecture. Graphics The Graphics subsystem renders the animations of the game, and handles graphical processes of the software, such as particles, meshes, special effects, shadow and lighting. Graphics depends on Controller because the input manager is called when new resolution settings are applied. It depends on Audio because sound effects are mapped to specific graphics properties. An unexpected dependency we found was Graphics depending on Physics. This is because, when they render a post-processed scene, the code would call for the world's physics directly instead of calling for the game state from Game Specific Subsystems and retrieving physics information from that. Controller The Controller subsystem handles user inputs with two different manager codes: input and device manager. It also holds information about different types of hardware that could be used to play the game, such as normal keyboards, gamepads, and even wiimotes. An unexpected dependency we found was Controller depending on Graphics. This is because when a user supply inputs for camera control, Controller is required to call functions inside Graphics, such as getlinearvelocity and applymousemovement, to complete the requested camera command. Another example is, while using Irrlicht, the printscreen button would call for requestscreenshot command inside Irr_driver code file, which belongs inside Graphics, to take a screenshot. Physics The Physics subsystem deals with all the physics calculations and properties of a dynamic game object. It receives information about the game state, and changes it based upon the information it has on how all the various game entities should interact. Physics depends on four other subsystems: Game Specific Subsystems, Libraries, Core Systems, and Graphics. Physics needs to receive information about the game's state from Game Specific Subsystems. It also needs to communicate with bullet ( SuperTuxKart s physics engine) which is in Libraries. An unexpected dependency that was found was Physics depending on Graphics. The reason for this is that within the physics source files they would
8 sometimes check the animation type of a kart in order to set its physics properties. For example, if the animation type of the kart is a flattened kart, they slow the kart s speed. Audio The Audio subsystem handles the overall execution of audio content, handling the triggering of sound effects and background music and the coordination between both. Audio, as expected, contains the audio directory, and depends on the Game Specific Subsystems for information as to the status of the game s current state; if an event happens that requires a change of music, such as starting a race on a new track, then the Audio subsystem will step in and make it happen. Audio also depends on Core Systems for debugging and error handling, and is depended upon in turn by the Libraries system due to the presence of third party graphics engines (irrlict and bullet). There were no unexpected dependencies as far as Audio depending on another subsystem is concerned, but other subsystems depending on Audio is a different story; both Game Specific Subsystems and Graphics call Audio for the execution of sound effects, among other things, which is easily rationalized. We assumed all coordination between audio and other content would be routed through Game Specific Subsystems, but sometimes a subsystem bypasses the middleman. Core Systems Core Systems is responsible for foundational operations that are used by many other subsystems, such as obtaining and processing input, and managing debugging of the system. It contains the utils, guiengine, and io source directories. In our conceptual architecture it is dependent on Network, Game Specific Subsystems, Physics, Graphics, Audio, and Controler. Using Understand we delved deeper into this subsystem, and obtained the figures below showing how Core Systems s source directories interact with the other subsystems, and how the source directories interact with each other. As you can see in the Full View, io is mainly depended on by other subsystems, whereas guiengine and utils are mainly coupled to other systems via two-way connections. This makes sense, because guiengine is an interactive subsystem and therefore would require two-way dependencies. Similarly with utils, processes like debugging and logging require two-way dependencies. For example, Game Specific Subsystems is dependent on utils because it needs to write to the logs in utils, and Utils is dependent on Game Specific Subsystems in order to retrieve aspects of the game state when an error is encountered.
9 The only unexpected dependency is between Core Systems and Libraries. The reason for this dependency is utils/translation.hpp calling tinygettest::language::from_name().get_name(). This is to get the language from Libraries, which stores that information. Core Systems Full View Core Systems Internal View Network The Network subsystem is responsible for controlling SuperTuxKart s online processes, such as downloading new addons and updating a player s highscore on SuperTuxKart s server. It contains the online and addons source directories. Our conceptual understanding of Network was that it would only need to depend on Game Specific Subsystems and Libraries because it only needs to retrieve the highscores for races in order to update SuperTuxKart s online servers, and to access various third-party assets. In our concrete architecture, however, we found that Network additionally depends on Graphics and Core Subsystems. One example of a dependency from Network to Graphics is in the zip.cpp file: there is an include for graphics/irr_driver.hpp which invokes getfilesystem(). This makes intuitive sense. In order for the addon to be merged with the correct files, addons would have to access the file system to determine where to place the newly
10 downloaded files. An example of a dependency between Network and Core Systems is that addons/addon.hpp incluedes io/file_manager and invokes getaddonsdir() in the addon.cpp -> isaddon() function. This function serves to check if the supplied id is a an addon. Libraries The Libraries subsystem contains all of the 3 rd party SDK s that SuperTuxKart uses. Every subsystem depends on it because all the subsystems need access to different engines (OpenGL, bullet, irrlicht etc.). However, it depends on Core Systems because some libraries needs to access the games s file manager. It also depends on Graphics because some of the libraries use attributes that are within the Graphics subsystem. Sequence Diagrams The sequence diagram above shows how the game handles a user's kart colliding with a powerup. First, the Controller subsystem reads the input the user supplies, and then notifies Game Specific Subsystems that the kart needs to move. Next, the Game Specific Subsystems ask Physics if a collision has happened between the kart and another object. Physics returns true in this case, and provides the id of the object the kart has collided with. Furthermore, Game Specific Subsystems tells Graphics to draw the powerup on the user's screen, and tells Audio to play the sound associated with picking up a powerup. The Graphics subsystem gets the correct OpenGL texture from Libraries, and Audio gets the correct sound file from Core Systems. Lastly the power up is displayed on the screen concurrently with the audio being played.
11 The sequence diagram above show one kart colliding with another. First, Game Specific Subsystems calls update() on Physics, and Physics calls getandmapaction() from Core Systems. This data is used to update Controller, which in turn updates the action in Game Specific Subsystems/Kart and returns control to Physics. Physics then calculates the outcome for the timestamp and detects a collision between two karts. It then calls Graphics to render the collision, which calls Audio to play the sound. Both return to Core Systems on different threads to play the collision sound and show the updated display, and this information is sent to the user through the system s devices. Concurrency In SuperTuxKart, multiple instances of concurrency exist throughout the game and must be properly managed at runtime for a satisfactory experience. SuperTuxKart supports multi-threading, so audio and graphics must run in the same thread. If the audio and graphics are de-synced, the resulting gameplay would not make sense to the user. The game supports up to four players at once for local multiplayer, meaning the game must manage multiple input streams for different input devices. As an open source game, SuperTuxKart offers many different platform and input options, which, on top of the complication of additional client support, require multiple different and concurrent inputs. Since there are multiple entities in a race, all karts must be managed and updated concurrently. As karts move through the track, there are frequent position changes, item activations, and interactions between karts. The game must manage
12 these interactions concurrently in the game state, which is an important part of a high quality game. Division of Responsibilities and Development Team Issues The three main roles of the development team are: - Joerg Henrichs ( Hiker ), the Project Leader - Marianne Gagnon ( Auria ), the Main Developer - Jean-Manuel Clemençon ( Samuncle ), the Lead Artist Since SuperTuxKart is an open source project, throughout development many people have been able to contribute to the game. The open source nature also created some issues surrounding SuperTuxKart s creation. Since the game's initial release in 2004, the people in each of the three main project roles have changed numerous times, making it hard to transfer information about the game between old and new project leads. This also makes it hard for developers to communicate with one another, as anyone can jump in and contribute at a moment s notice. Lessons Learned Once we got a good grasp of the basic functionality of Understand, the project started coming together much more easily. Though not perfect by any means, the program provided us with all the tools we needed to investigate and formulate our concrete architecture. Tracing dependencies back to their sources was a very illuminating exercise. It enabled us to gain a level of knowledge of the inner workings of SuperTuxKart that had previously eluded us. It's this knowledge that will be an invaluable asset in the next assignment, when we have to create our own components and dependencies. Finally, in addition to Understand, we utilized some new software that allowed us to create and share diagrams amongst our group members, akin to the online presentation and document software we use for our presentations and reports. This meant that the creation of our diagrams was more of a collaborative effort, as we could add or suggest changes on the fly. Conclusion From start to finish, we made quite a few revisions and additions to our ongoing analysis of SuperTuxKart's architecture.
13 Our original conceptual architecture was heavily altered to fit a new level of knowledge, and, with the invaluable help of Understand, we arrived at a concrete architecture that (eventually) reflected what we felt was an accurate view of the game's interconnectivity. We were then able to compare both conceptual and concrete to pinpoint exactly where our hypotheses converged and diverged with reality. Evaluating these comparisons gave us a deeper understanding of both the nature of SuperTuxKart's development and the development team themselves, especially when we arrived at a dependency we didn't expect. Cohesion within the concrete architecture was at a premium, while high levels of coupling provides a nearly-complete graph of dependencies. Finally, we updated our sequence diagrams and re-evaluated our understanding of the effects of concurrency and team issues on SuperTuxKart, as well as engaging in a little self-reflection. The deeper analyses we performed on a select few subsystems will play a significant role in the near future, when we shift gears from contemplation to continuation in Assignment 3. References S. (2012). Supertuxkart/stk-code. Retrieved November 9, 2016, from Coding Style. (2016). Retrieved November 9, 2016, from Overview Architecture. (2016). Retrieved November 10, 2016, from
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
More informationPangolin: Concrete Architecture of SuperTuxKart. Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy
Pangolin: Concrete Architecture of SuperTuxKart Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy Abstract For this report we will be looking at the concrete architecture
More informationPangolin: A Look at the Conceptual Architecture of SuperTuxKart. Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy
Pangolin: A Look at the Conceptual Architecture of SuperTuxKart Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy Abstract This report will be taking a look at the conceptual
More informationPangolin: A look at the conceptual Architecture of Super Tux Kart. A CISC 326 Project by:
Pangolin: A look at the conceptual Architecture of Super Tux Kart A CISC 326 Project by: Mohammed Gasmallah Russell Dawes Caleb Aikens Leonard Ha Vincent Hung Joseph Landy Overview Architectural Style
More informationINTRODUCTION TO GAME AI
CS 387: GAME AI INTRODUCTION TO GAME AI 3/31/2016 Instructor: Santiago Ontañón santi@cs.drexel.edu Class website: https://www.cs.drexel.edu/~santi/teaching/2016/cs387/intro.html Outline Game Engines Perception
More informationIntroduction to Game Design. Truong Tuan Anh CSE-HCMUT
Introduction to Game Design Truong Tuan Anh CSE-HCMUT Games Games are actually complex applications: interactive real-time simulations of complicated worlds multiple agents and interactions game entities
More informationA3 Kart Deterioration Feature Addition
A3 Kart Deterioration Feature Addition CMPE 326 Clark Holdham - 10122348 Aranjit Daid - 10052771 Jeffrey Turnock - 10087069 Ameris Rudland - 10108273 Nolan Nisbet - 10089873 Madeline Van Der Paelt - 10093249
More informationProgram a Game Engine from Scratch. Chapter 1 - Introduction
Program a Game Engine from Scratch Mark Claypool Chapter 1 - Introduction This document is part of the book Dragonfly Program a Game Engine from Scratch, (Version 5.0). Information online at: http://dragonfly.wpi.edu/book/
More informationCS Game Programming, Fall 2014
CS 38101 Game Programming, Fall 2014 Recommended Text Learn Unity 4 for ios Game Development, Philip Chu, 2013, Apress, ISBN-13 (pbk): 978-1-4302-4875-0 ISBN-13 (electronic): 978-1-4302-4876-7, www.apress.com.
More informationTeam Breaking Bat Architecture Design Specification. Virtual Slugger
Department of Computer Science and Engineering The University of Texas at Arlington Team Breaking Bat Architecture Design Specification Virtual Slugger Team Members: Sean Gibeault Brandon Auwaerter Ehidiamen
More informationConcrete Architecture Report
Concrete Architecture Report CISC 235, winter 2015 For Ahmed E. Hassan Due 13 November 2015 By GROUP OMG http://cisc326groupomg.wordpress.com/ Joshua Lee 10112488 13jl45@queensu.ca Nelson Yi 10105387 13ny@queensu.ca
More informationUnity Game Development Essentials
Unity Game Development Essentials Build fully functional, professional 3D games with realistic environments, sound, dynamic effects, and more! Will Goldstone 1- PUBLISHING -J BIRMINGHAM - MUMBAI Preface
More informationDesign Document for: Name of Game. One Liner, i.e. The Ultimate Racing Game. Something funny here! All work Copyright 1999 by Your Company Name
Design Document for: Name of Game One Liner, i.e. The Ultimate Racing Game Something funny here! All work Copyright 1999 by Your Company Name Written by Chris Taylor Version # 1.00 Thursday, September
More informationLOOKING AHEAD: UE4 VR Roadmap. Nick Whiting Technical Director VR / AR
LOOKING AHEAD: UE4 VR Roadmap Nick Whiting Technical Director VR / AR HEADLINE AND IMAGE LAYOUT RECENT DEVELOPMENTS RECENT DEVELOPMENTS At Epic, we drive our engine development by creating content. We
More informationGaming Development. Resources
Gaming Development Resources Beginning Game Programming Fourth Edition Jonathan S. Harbour 9781305258952 Beginning Game Programming will introduce students to the fascinating world of game programming
More informationIMGD Technical Game Development I: Introduction. by Robert W. Lindeman
IMGD 3000 - Technical Game Development I: Introduction by Robert W. Lindeman gogo@wpi.edu What to Expect This course is mainly about the nuts and bolts of creating game-engine code Game architecture, algorithms,
More informationOculus Rift Getting Started Guide
Oculus Rift Getting Started Guide Version 1.23 2 Introduction Oculus Rift Copyrights and Trademarks 2017 Oculus VR, LLC. All Rights Reserved. OCULUS VR, OCULUS, and RIFT are trademarks of Oculus VR, LLC.
More informationIMGD Technical Game Development I: Introduction
IMGD 3000 - Technical Game Development I: Introduction by Robert W. Lindeman gogo@wpi.edu What to Expect This course is mainly about the nuts and bolts of creating game code Game architecture, algorithms,
More informationInstallation Instructions
Installation Instructions Important Notes: The latest version of Stencyl can be downloaded from: http://www.stencyl.com/download/ Available versions for Windows, Linux and Mac This guide is for Windows
More informationCSE 125 Boot Camp. Or: How I Learned to Stop Worrying and Love The Lab
CSE 125 Boot Camp Or: How I Learned to Stop Worrying and Love The Lab About Me Game Developer since 2010 forever Founder and President of VGDC gamedev.ucsd.edu (shameless self-promotion ftw) I look like
More informationPLANETOID PIONEERS: Creating a Level!
PLANETOID PIONEERS: Creating a Level! THEORY: DESIGNING A LEVEL Super Mario Bros. Source: Flickr Originally coders were the ones who created levels in video games, nowadays level designing is its own profession
More informationCS 354R: Computer Game Technology
CS 354R: Computer Game Technology http://www.cs.utexas.edu/~theshark/courses/cs354r/ Fall 2017 Instructor and TAs Instructor: Sarah Abraham theshark@cs.utexas.edu GDC 5.420 Office Hours: MW4:00-6:00pm
More informationArcade Game Maker Product Line Requirements Model
Arcade Game Maker Product Line Requirements Model ArcadeGame Team July 2003 Table of Contents Overview 2 1.1 Identification 2 1.2 Document Map 2 1.3 Concepts 3 1.4 Reusable Components 3 1.5 Readership
More informationDepartment of Computer Science and Engineering The Chinese University of Hong Kong. Year Final Year Project
Digital Interactive Game Interface Table Apps for ipad Supervised by: Professor Michael R. Lyu Student: Ng Ka Hung (1009615714) Chan Hing Faat (1009618344) Year 2011 2012 Final Year Project Department
More informationOculus Rift Getting Started Guide
Oculus Rift Getting Started Guide Version 1.7.0 2 Introduction Oculus Rift Copyrights and Trademarks 2017 Oculus VR, LLC. All Rights Reserved. OCULUS VR, OCULUS, and RIFT are trademarks of Oculus VR, LLC.
More informationIMGD Technical Game Development I: Introduction. by Robert W. Lindeman
IMGD 3000 - Technical Game Development I: Introduction by Robert W. Lindeman gogo@wpi.edu What to Expect This course is mainly about the nuts and bolts of creating game-engine code Game architecture, algorithms,
More informationArcade Game Maker Product Line Production Plan
Arcade Game Maker Product Line Production Plan ArcadeGame Team July 2003 Table of Contents 1 Overview 1 1.1 Identification 1 1.2 Document Map 1 1.3 Concepts 2 1.4 Readership 2 2 Strategic view of product
More informationGame Programming Paradigms. Michael Chung
Game Programming Paradigms Michael Chung CS248, 10 years ago... Goals Goals 1. High level tips for your project s game architecture Goals 1. High level tips for your project s game architecture 2.
More informationMobile and web games Development
Mobile and web games Development For Alistair McMonnies FINAL ASSESSMENT Banner ID B00193816, B00187790, B00186941 1 Table of Contents Overview... 3 Comparing to the specification... 4 Challenges... 6
More informationEmergent s Gamebryo. Casey Brandt. Technical Account Manager Emergent Game Technologies. Game Tech 2009
Emergent s Gamebryo Game Tech 2009 Casey Brandt Technical Account Manager Emergent Game Technologies Questions To Answer What is Gamebryo? How does it look today? How is it designed? What titles are in
More informationThe 8 th International Scientific Conference elearning and software for Education Bucharest, April 26-27, / X
The 8 th International Scientific Conference elearning and software for Education Bucharest, April 26-27, 2012 10.5682/2066-026X-12-153 SOLUTIONS FOR DEVELOPING SCORM CONFORMANT SERIOUS GAMES Dragoş BĂRBIERU
More informationBrick Breaker. By Connor Molde Comptuer Games & Interactive Media Year 1
Brick Breaker By Connor Molde Comptuer Games & Interactive Media Year 1 Contents Section One: Section Two: Project Abstract Page 1 Concept Design Pages 2-3 Section Three: Research Pages 4-7 Section Four:
More informationUnity Certified Programmer
Unity Certified Programmer 1 unity3d.com The role Unity programming professionals focus on developing interactive applications using Unity. The Unity Programmer brings to life the vision for the application
More informationIntroduction. Modding Kit Feature List
Introduction Welcome to the Modding Guide of Might and Magic X - Legacy. This document provides you with an overview of several content creation tools and data formats. With this information and the resources
More informationRequirements Specification. An MMORPG Game Using Oculus Rift
1 System Description CN1 An MMORPG Game Using Oculus Rift The project Game using Oculus Rift is the game application based on Microsoft Windows that allows user to play the game with the virtual reality
More informationCISC 1600, Lab 2.2: More games in Scratch
CISC 1600, Lab 2.2: More games in Scratch Prof Michael Mandel Introduction Today we will be starting to make a game in Scratch, which ultimately will become your submission for Project 3. This lab contains
More informationThe purpose of this document is to outline the structure and tools that come with FPS Control.
FPS Control beta 4.1 Reference Manual Purpose The purpose of this document is to outline the structure and tools that come with FPS Control. Required Software FPS Control Beta4 uses Unity 4. You can download
More informationUnity 3.x. Game Development Essentials. Game development with C# and Javascript PUBLISHING
Unity 3.x Game Development Essentials Game development with C# and Javascript Build fully functional, professional 3D games with realistic environments, sound, dynamic effects, and more! Will Goldstone
More informationthe gamedesigninitiative at cornell university Lecture 4 Game Components
Lecture 4 Game Components Lecture 4 Game Components So You Want to Make a Game? Will assume you have a design document Focus of next week and a half Building off ideas of previous lecture But now you want
More informationGame Design 2. Table of Contents
Course Syllabus Course Code: EDL082 Required Materials 1. Computer with: OS: Windows 7 SP1+, 8, 10; Mac OS X 10.8+. Windows XP & Vista are not supported; and server versions of Windows & OS X are not tested.
More informationCitiTag Multiplayer Infrastructure
CitiTag Multiplayer Infrastructure Kevin Quick and Yanna Vogiazou KMI-TR-138 http://kmi.open.ac.uk/publications/papers/kmi-tr-138.pdf March, 2004 Introduction The current technical report describes the
More informationVisual Design in Games
Visual Design in Games Last class The central purpose of any visual medium is communication Instructive forces are always at work in games Visuals of the game world should add cohesiveness and continuity
More informationUNIT-III LIFE-CYCLE PHASES
INTRODUCTION: UNIT-III LIFE-CYCLE PHASES - If there is a well defined separation between research and development activities and production activities then the software is said to be in successful development
More informationSoftware Requirements Specification Document. CENG 490 VANA Project
Software Requirements Specification Document CENG 490 VANA Project Barış Çavuş - 1819754 Erenay Dayanık - 1819192 Memduh Çağrı Demir - 1819218 Mesut Balcı 1819093 Date: 30.11.2014 Table of Contents 1 Introduction...
More informationFederico Forti, Erdi Izgi, Varalika Rathore, Francesco Forti
Basic Information Project Name Supervisor Kung-fu Plants Jakub Gemrot Annotation Kung-fu plants is a game where you can create your characters, train them and fight against the other chemical plants which
More informationSIU-CAVE. Cave Automatic Virtual Environment. Project Design. Version 1.0 (DRAFT) Prepared for. Dr. Christos Mousas JBU.
SIU-CAVE Cave Automatic Virtual Environment Project Design Version 1.0 (DRAFT) Prepared for Dr. Christos Mousas By JBU on March 2nd, 2018 SIU CAVE Project Design 1 TABLE OF CONTENTS -Introduction 3 -General
More informationAnnex IV - Stencyl Tutorial
Annex IV - Stencyl Tutorial This short, hands-on tutorial will walk you through the steps needed to create a simple platformer using premade content, so that you can become familiar with the main parts
More informationTowards a Reference Architecture for 3D First Person Shooter Games
Towards a Reference Architecture for 3D First Person Shooter Games Philip Liew-pliew@swen.uwaterloo.ca Ali Razavi-arazavi@swen.uwaterloo.ca Atousa Pahlevan-apahlevan@cs.uwaterloo.ca April 6, 2004 Abstract
More informationPROJECT REPORT: GAMING : ROBOT CAPTURE
BOWIE STATE UNIVERSITY SPRING 2015 COSC 729 : VIRTUAL REALITY AND ITS APPLICATIONS PROJECT REPORT: GAMING : ROBOT CAPTURE PROFESSOR: Dr. SHARAD SHARMA STUDENTS: Issiaka Kamagate Jamil Ramsey 1 OUTLINE
More informationLecture 1: Introduction and Preliminaries
CITS4242: Game Design and Multimedia Lecture 1: Introduction and Preliminaries Teaching Staff and Help Dr Rowan Davies (Rm 2.16, opposite the labs) rowan@csse.uwa.edu.au Help: via help4242, project groups,
More informationOrbital Delivery Service
Orbital Delivery Service Michael Krcmarik Andrew Rodman Project Description 1 Orbital Delivery Service is a 2D moon lander style game where the player must land a cargo ship on various worlds at the intended
More informationNo Evidence. What am I Testing? Expected Outcomes Testing Method Actual Outcome Action Required
No Evidence What am I Testing? Expected Outcomes Testing Method Actual Outcome Action Required If a game win is triggered if the player wins. If the ship noise triggered when the player loses. If the sound
More informationWhile entry is at the discretion of the centre it would be beneficial if candidates had the following IT skills:
National Unit Specification: general information CODE F917 11 SUMMARY The aim of this Unit is for candidates to gain an understanding of processes involved in the final stages of computer game development.
More information[Game] Programming I Didn t Learn In School
[Game] Programming I Didn t Learn In School presented by Anton Gerdelan Trinity College Dublin antongerdelan.net me computer graphics research, Trinity College Dublin, Ireland lectured
More information6 System architecture
6 System architecture is an application for interactively controlling the animation of VRML avatars. It uses the pen interaction technique described in Chapter 3 - Interaction technique. It is used in
More informationAn Overview of the Mimesis Architecture: Integrating Intelligent Narrative Control into an Existing Gaming Environment
An Overview of the Mimesis Architecture: Integrating Intelligent Narrative Control into an Existing Gaming Environment R. Michael Young Liquid Narrative Research Group Department of Computer Science NC
More informationCreating a Mobile Game
The University of Akron IdeaExchange@UAkron Honors Research Projects The Dr. Gary B. and Pamela S. Williams Honors College Spring 2015 Creating a Mobile Game Timothy Jasany The University Of Akron, trj21@zips.uakron.edu
More informationG54GAM Lab Session 1
G54GAM Lab Session 1 The aim of this session is to introduce the basic functionality of Game Maker and to create a very simple platform game (think Mario / Donkey Kong etc). This document will walk you
More informationHarry Plummer KC BA Digital Arts. Virtual Space. Assignment 1: Concept Proposal 23/03/16. Word count: of 7
Harry Plummer KC39150 BA Digital Arts Virtual Space Assignment 1: Concept Proposal 23/03/16 Word count: 1449 1 of 7 REVRB Virtual Sampler Concept Proposal Main Concept: The concept for my Virtual Space
More informationCONCEPTS EXPLAINED CONCEPTS (IN ORDER)
CONCEPTS EXPLAINED This reference is a companion to the Tutorials for the purpose of providing deeper explanations of concepts related to game designing and building. This reference will be updated with
More informationBooH pre-production. 4. Technical Design documentation a. Main assumptions b. Class diagram(s) & dependencies... 13
BooH pre-production Game Design Document Updated: 2015-05-17, v1.0 (Final) Contents 1. Game definition mission statement... 2 2. Core gameplay... 2 a. Main game view... 2 b. Core player activity... 2 c.
More informationExperiment 02 Interaction Objects
Experiment 02 Interaction Objects Table of Contents Introduction...1 Prerequisites...1 Setup...1 Player Stats...2 Enemy Entities...4 Enemy Generators...9 Object Tags...14 Projectile Collision...16 Enemy
More informationPASSENGER. Story of a convergent pipeline. Thomas Felix TG - Passenger Ubisoft Montréal. Pierre Blaizeau TWINE Ubisoft Montréal
PASSENGER Story of a convergent pipeline Thomas Felix TG - Passenger Ubisoft Montréal Pierre Blaizeau TWINE Ubisoft Montréal Technology Group PASSENGER How to expand your game universe? How to bridge game
More informationDESIGN STYLE FOR BUILDING INTERIOR 3D OBJECTS USING MARKER BASED AUGMENTED REALITY
DESIGN STYLE FOR BUILDING INTERIOR 3D OBJECTS USING MARKER BASED AUGMENTED REALITY 1 RAJU RATHOD, 2 GEORGE PHILIP.C, 3 VIJAY KUMAR B.P 1,2,3 MSRIT Bangalore Abstract- To ensure the best place, position,
More informationMichigan State University Team MSUFCU Money Smash Chronicle Project Plan Spring 2016
Michigan State University Team MSUFCU Money Smash Chronicle Project Plan Spring 2016 MSUFCU Staff: Whitney Anderson-Harrell Austin Drouare Emily Fesler Ben Maxim Ian Oberg Michigan State University Capstone
More informationStudents: Bar Uliel, Moran Nisan,Sapir Mordoch Supervisors: Yaron Honen,Boaz Sternfeld
Students: Bar Uliel, Moran Nisan,Sapir Mordoch Supervisors: Yaron Honen,Boaz Sternfeld Table of contents Background Development Environment and system Application Overview Challenges Background We developed
More informationSession 3 _ Part A Effective Coordination with Revit Models
Session 3 _ Part A Effective Coordination with Revit Models Class Description Effective coordination relies upon a measured strategic approach to using clash detection software. This class will share best
More informationMicrosoft ESP Developer profile white paper
Microsoft ESP Developer profile white paper Reality XP Simulation www.reality-xp.com Background Microsoft ESP is a visual simulation platform that brings immersive games-based technology to training and
More informationOverview. The Game Idea
Page 1 of 19 Overview Even though GameMaker:Studio is easy to use, getting the hang of it can be a bit difficult at first, especially if you have had no prior experience of programming. This tutorial is
More informationTAKE CONTROL GAME DESIGN DOCUMENT
TAKE CONTROL GAME DESIGN DOCUMENT 04/25/2016 Version 4.0 Read Before Beginning: The Game Design Document is intended as a collective document which guides the development process for the overall game design
More informationJeopardy: Sports September 17, 2013 Confidential Quote Koolhaus Games Inc. for Sony September 17, 2013 Dear Phil, Robert and Jocelyn, Jeopardy: Sports ios & Android Additional Scope: Tier 2 CONFIDENTIAL
More informationG54GAM - Games. So.ware architecture of a game
G54GAM - Games So.ware architecture of a game Coursework Coursework 2 and 3 due 18 th May Design and implement prototype game Write a game design document Make a working prototype of a game Make use of
More informationHow to develop and localize Xbox 360 Titles. 강상진 XBOX Program Manager 한국마이크로소프트소프트웨어연구소
How to develop and localize Xbox 360 Titles 강상진 (sjkang@microsoft.com) XBOX Program Manager 한국마이크로소프트소프트웨어연구소 Agenda Xbox Title DEV Team Xbox Software Architecture Overview XTL(Xbox Title Library) XDK(Xbox
More informationHERO++ DESIGN DOCUMENT. By Team CreditNoCredit VERSION 6. June 6, Del Davis Evan Harris Peter Luangrath Craig Nishina
HERO++ DESIGN DOCUMENT By Team CreditNoCredit Del Davis Evan Harris Peter Luangrath Craig Nishina VERSION 6 June 6, 2011 INDEX VERSION HISTORY 4 Version 0.1 April 9, 2009 4 GAME OVERVIEW 5 Game logline
More informationFpglappy Bird: A side-scrolling game. 1 Overview. Wei Low, Nicholas McCoy, Julian Mendoza Project Proposal Draft, Fall 2015
Fpglappy Bird: A side-scrolling game Wei Low, Nicholas McCoy, Julian Mendoza 6.111 Project Proposal Draft, Fall 2015 1 Overview On February 10th, 2014, the creator of Flappy Bird, a popular side-scrolling
More informationHave you ever been playing a video game and thought, I would have
In This Chapter Chapter 1 Modifying the Game Looking at the game through a modder s eyes Finding modding tools that you had all along Walking through the making of a mod Going public with your creations
More informationGreg Dydalewicz Animation Six Weeks TEKS TEKS Strand Interdisciplinary/Activity 1st (1) Creativity and
Six Weeks TEKS TEKS Strand Interdisciplinary/Activity 1st (1) Creativity and (A) use vocabulary as it Art, Chemistry, Physics, innovation. The student relates to digital art, audio, Writing, Research and
More informationFormal Game Proposal
Thomas Siegrist (ts) David Gerhard (dg) Philipp Keller (ph) Jonas Hauenstein (jh) 1 Contents 1 Contents 2 2 Game Description 3 2.1 The Historical Background 3 2.2 Basic Game Idea 3 2.3 Game Mockup 5 3
More informationGame Programming Laboratory Conclusion report
Game Programming Laboratory Conclusion report Huw Bowles Samuel Muff Filip Wieladek Revision: 1 1. Table of Contents 1.Table of Contents...2 2.Introduction...2 3.Final Results The Game...2 4.Experiences...3
More informationDigital Asset Management 7. Interactive Media and Game Development process
Digital Asset Management 7. Interactive Media and Game Development process 2015-11-12 Game Types Arcade Games Puzzle Games Role Playing Games Strategy Games Adventure Games First-Person Shooters Third-Person
More informationSurfing on a Sine Wave
Surfing on a Sine Wave 6.111 Final Project Proposal Sam Jacobs and Valerie Sarge 1. Overview This project aims to produce a single player game, titled Surfing on a Sine Wave, in which the player uses a
More informationGame Architecture. Rabin is a good overview of everything to do with Games A lot of these slides come from the 1 st edition CS
Game Architecture Rabin is a good overview of everything to do with Games A lot of these slides come from the 1 st edition CS 4455 1 Game Architecture The code for modern games is highly complex Code bases
More informationThe Design & Development of RPS-Vita An Augmented Reality Game for PlayStation Vita CMP S1: Applied Game Technology Duncan Bunting
The Design & Development of RPS-Vita An Augmented Reality Game for PlayStation Vita CMP404.2016-7.S1: Applied Game Technology Duncan Bunting 1302739 1 - Design 1.1 - About The Game RPS-Vita, or Rock Paper
More informationFpglappy Bird: A side-scrolling game. Overview
Fpglappy Bird: A side-scrolling game Wei Low, Nicholas McCoy, Julian Mendoza 6.111 Project Proposal Draft Fall 2015 Overview On February 10th, 2014, the creator of Flappy Bird, a popular side-scrolling
More informationCompetition Manual. 11 th Annual Oregon Game Project Challenge
2017-2018 Competition Manual 11 th Annual Oregon Game Project Challenge www.ogpc.info 2 We live in a very connected world. We can collaborate and communicate with people all across the planet in seconds
More informationPropietary Engine VS Commercial engine. by Zalo
Propietary Engine VS Commercial engine by Zalo zalosan@gmail.com About me B.S. Computer Engineering 9 years of experience, 5 different companies 3 propietary engines, 2 commercial engines I have my own
More informationGame Design 1. Unit 1: Games and Gameplay. Learning Objectives. After studying this unit, you will be able to:
Game Design 1 Are you a gamer? Do you enjoy playing video games or coding? Does the idea of creating and designing your own virtual world excite you? If so, this is the course for you! When it comes to
More informationBachelor Project Major League Wizardry: Game Engine. Phillip Morten Barth s113404
Bachelor Project Major League Wizardry: Game Engine Phillip Morten Barth s113404 February 28, 2014 Abstract The goal of this project is to design and implement a flexible game engine based on the rules
More informationIndividual Test Item Specifications
Individual Test Item Specifications 8208110 Game and Simulation Foundations 2015 The contents of this document were developed under a grant from the United States Department of Education. However, the
More informationGenerating Virtual Environments by Linking Spatial Data Processing with a Gaming Engine
Generating Virtual Environments by Linking Spatial Data Processing with a Gaming Engine Christian STOCK, Ian D. BISHOP, and Alice O CONNOR 1 Introduction As the general public gets increasingly involved
More informationVACUUM MARAUDERS V1.0
VACUUM MARAUDERS V1.0 2008 PAUL KNICKERBOCKER FOR LANE COMMUNITY COLLEGE In this game we will learn the basics of the Game Maker Interface and implement a very basic action game similar to Space Invaders.
More informationA flexible application framework for distributed real time systems with applications in PC based driving simulators
A flexible application framework for distributed real time systems with applications in PC based driving simulators M. Grein, A. Kaussner, H.-P. Krüger, H. Noltemeier Abstract For the research at the IZVW
More informationUsing a Game Development Platform to Improve Advanced Programming Skills
Journal of Reviews on Global Economics, 2017, 6, 328-334 328 Using a Game Development Platform to Improve Advanced Programming Skills Banyapon Poolsawas 1 and Winyu Niranatlamphong 2,* 1 Department of
More informationAbandon. 1. Everything comes to life! 1.1. Introduction Character Biography
Abandon 1. Everything comes to life! 1.1. Introduction You find yourself alone in an empty world, no idea who you are and why you are here. As you reach out to feel the environment, you realise that the
More informationBeginning 3D Game Development with Unity:
Beginning 3D Game Development with Unity: The World's Most Widely Used Multi-platform Game Engine Sue Blackman Apress* Contents About the Author About the Technical Reviewer Acknowledgments Introduction
More information3D Top Down Shooter By Jonay Rosales González AKA Don Barks Gheist
3D Top Down Shooter By Jonay Rosales González AKA Don Barks Gheist This new version of the top down shooter gamekit let you help to make very adictive top down shooters in 3D that have made popular with
More informationSIMGRAPH - A FLIGHT SIMULATION DATA VISUALIZATION WORKSTATION. Joseph A. Kaplan NASA Langley Research Center Hampton, Virginia
SIMGRAPH - A FLIGHT SIMULATION DATA VISUALIZATION WORKSTATION Joseph A. Kaplan NASA Langley Research Center Hampton, Virginia Patrick S. Kenney UNISYS Corporation Hampton, Virginia Abstract Today's modern
More informationEDUCATING AND ENGAGING CHILDREN AND GUARDIANS ON THE BENEFITS OF GOOD POSTURE
EDUCATING AND ENGAGING CHILDREN AND GUARDIANS ON THE BENEFITS OF GOOD POSTURE CSE: Introduction to HCI Rui Wu Siyu Pan Nathan Lee 11/26/2018 Table of Contents Table of Contents 2 The Team 4 Problem and
More informationADVANCED WHACK A MOLE VR
ADVANCED WHACK A MOLE VR Tal Pilo, Or Gitli and Mirit Alush TABLE OF CONTENTS Introduction 2 Development Environment 3 Application overview 4-8 Development Process - 9 1 Introduction We developed a VR
More informationOfficial Documentation
Official Documentation Doc Version: 1.0.0 Toolkit Version: 1.0.0 Contents Technical Breakdown... 3 Assets... 4 Setup... 5 Tutorial... 6 Creating a Card Sets... 7 Adding Cards to your Set... 10 Adding your
More information