Emergent Architecture Design (draft) TI2805 Context Project, Computer Games, Group 1 (Building Blocks)

Gert Spek gspek 4216806

Niels Bakker ncbakker 4161394

Maarten van Elsas mvanelsas 4176898

Jehan da Camara jdacamara 4207858 Leon Helsloot lhelsloot 4235991

May 15, 2014

The emergent architecture design is a continuously updated document describing the current state and envisioned design of the hardware and software architecture behind the Building Blocks game, created by group 1 of the Computer Games context project. The document contains a brief overview of the design goals influencing the architecture, followed by a high level description of used software components and the interaction between these components. Finally, a description of the hardware architecture necessary to facilitate the game is given, as well as a mapping between software and hardware components.

Contents 1 Introduction 1.1 Design goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Easy for the user . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.2 Easy to setup the game . . . . . . . . . . . . . . . . . . . . . . . .

3 3 3 3

2 Software Architecture 2.1 Programming languages and Development Environment . . . . . . . . . 2.2 Argumentation for the choice in programming languages and Development Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Code quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.

4 4

. . .

4 4 4

3 Hardware Architecture 3.1 Hardware / Software Mapping . . . . . . . . . . . . . . . . . . . . . . . . 3.2 System concurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Systemstatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 5 5 5

1 Introduction 1.1 Design goals Apart from the design goals regarding the functionality of the product as described in the Design Document, some design goals with respect to the architecture of the game have to be taken into account. The main design goal is for the game to be usable by a large and diverse audience. This goal can be split up into two smaller goals: ease of use from the user’s perspective and ease of setup from a server administrator’s perspective. 1.1.1 Easy for the user In order to make the game reachable for a large audience, effort must be made to make joining and playing the game straightforward to the user. Joining a game session must be as easy as scanning a QR code from the game application. Furthermore, placing blocks in the building must be intuitive to the user by visualizing where a block would be placed to avoid misplacement of that block. 1.1.2 Easy to setup the game One of our main goals is that the game should be easy to setup. With just a placemant of a marker and running server. That can handle all the requests to join and a game and able to distribute the global structure of a team to a team player.

3

2 Software Architecture When creating Building Blocks we wanted a game that would be applicable to big groups of people and it should also be easy to access.Because smartphones are very common and have a very broad potential we decided to built our game for smartphones. Because the majority of the smartphone market is Android and iOS, approximately 90% of the market[1], we decided to start by implementing our game for these two operating systems.

2.1 Programming languages and Development Environment For Building Blocks we use the Unity3D game engine combined with the Vuforia SDK for the augmented reality libraries. Within Unity we decided to write the necessary scripts in C#. For all our server purposes we also use Unity. With Unity it is also possible to build directly to a connected phone, this way we can quickly see if our implementation has the correct behaviour.

2.2 Argumentation for the choice in programming languages and Development Environments As already mentioned we are using the Unity package of Vuforia. First off we tried to use the Metaio SDK for the augmented reality but Metaio’s augmented reality was quite jittery and thus we came across Vuforia which was more what we were aiming for. Unity was a easy choice because we already chosen Vuforia and since we are making a game it seemed like a good idea to use a game engine. As for our choice to use C# instead of the other programming languages is that in our opinion C# is better equiped to handle what we want to implement for Building Blocks.

2.3 Tests To check if our game does what it was suppose to we carry out test on the code. For the testing of the code, Unity has a tool called Unity Test Tools with is obtainable in the Asset Store in Unity. This tool uses NUnit to carry out the test. So to use Unity Test Tools one would have to import this in the framework. Futhermore to fully test the code the use of Mocks is required. The mocks are created using the MoQ framework.

2.4 Code quality To achieve a high code quality for the game we use GitHub and a continuous intergration server. With Maarten appointed as our lead programmer, his job is to make sure all pull requests to the master branch have decent tests and the code is properly formatted.

4

3 Hardware Architecture 3.1 Hardware / Software Mapping For the Building Blocks every player or spectator needs a IOS smartphone or Andriod smartphone with a QR scanner. With will connect to server. The server will be running a network interface from Unity. On the smartphone will run game engine from Unity with a visual engine from Vuforia SDK. With is depicted in the first figure.

3.2 System concurrency The server with the Building Blocks would have to handle a lot of things simultaneously. The server should be able to differ if the person is a player or spectator. Because player can only see there structure and spectators can see every teams structures. Also the server has make sure that global structure with the team is working on is update real time, to make sure that two players are not working on the same thing. Finally the server has to be aware with use has with block and with color the block is.

3.3 Systemstatus In figure 2 all the different states for Building Blocks game.A person can start playing. And when they are playing they can create a block. After a block is created they can place a block in the game and if the structure is complete the game has ended. Or is the player is playing the player has option to leave at any time. A person can also start as a spectator and have to possibility to join the game at any point if the maximum amount of players is not exceeded.

5

References [1] Llamas, R.,Reith, R. & Shirer, M.(2013, February 14). Smartphone market. Retrieved from http://www.idc.com/getdoc.jsp?containerId=prUS23946013# .USuIPVrF2Bg/.

6

Emergent Architecture Design (draft) - GitHub

May 15, 2014 - the majority of the smartphone market is Android and iOS, approximately 90% of the market[1], we decided to start by implementing our game ...

165KB Sizes 14 Downloads 316 Views

Recommend Documents

[UNICEF]Draft Resolution_1 - GitHub
Establishes an universal standards to examine whether a site is suitable for the setting of a refugee camp so as to ensure the site is not involved in the war or ...

DIACC Design Challenge - GitHub
Pain Point 1: If an authorized user loses the original PDF certificate (along with the certificate number and access code) they cannot ... Designing for Opportunity (1 of 3). 4. Challenge .... verified as authentic against the blockchain using the mo

Building Blocks Design - GitHub
daily-ipad-app-blocksworld-hd-lets-you-build-and-play-with-3d-b/. [4] Maister ... zombies-run-naomi-alderman-app. [6] Ohan ... columbia.edu/~ohan/oda08.pdf.

1. Overall architecture of NuttX - GitHub
except when either (1) the application calls into the NuttX library code, or (2) an interrupt occurs. There is no ..... 13. net_initialize(); Initialize networking facilities, ... Such things as setting up interrupt service routines and starting the

Architecture patterns for safe design
We have been inspired by computer science studies where design patterns have been introduced to ease software development process by allowing the reuse ...

The Algorithm Design Manual - GitHub
design form one of the core practical technologies of computer science. .... placed. Degree of difficulty ratings (from 1 to 10) have been assigned to all ... Updating a book dedication after ten years focuses attention on the effects of time. ......

XML Notepad 2007 Design - GitHub
XML Notepad 2007 Design ... Validation, IntelliSense, and Custom Editors ... you'll find the core XmlNotepad dll project, an Application project that builds.

Digital Design with Chisel - GitHub
Dec 27, 2017 - This lecture notes (to become a book) are an introduction into hardware design with the focus on using the hardware construction language Chisel. The approach of this book is to present small to medium sized typical hardware components

Design module user manual - GitHub
In the design module objects like buildings can be selected. For each case, measures ... Figure 3, parts of the web application for control and visualizing data. 1.

Emergent Eucharist Liturgy.pdf
Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. Emergent Eucharist Liturgy.pdf. Emergent Eucharist Liturgy.pdf.

dsp architecture design essentials
dsp architecture design essentials contains important information and a detailed explanation about dsp architecture design essentials, its contents of the ...

Software Architecture OLSR Mesh Routing GUI Libqaul - GitHub
GUI Framework. Natives Window Frame- work & HTML5 interface: - Windows: Visual C++ .NetForms-Applikation. - OSX: Objective-C. - Android: Java. - Linux: QT.