Art+Game - Software Architecture Documentation

1. Introduction

1.1 Purpose

This document provides a comprehensive architectural overview of the system, by using several architectural views to depict different aspects of the system. It is intended to capture and convey the significant architectural decisions which have been made on the system.

1.2 Scope

This document describes the architecture of the Art+Game Project.

1.3 Definitions, Acronyms, and Abbreviations

Abbreviation  
N/A Not applicable

1.4 References

Title
Art+Game Blog
Software Requirements Specification

1.5 Overview

The following sections describe the architectural details of Art+Game. This document does not describe functionality made available by Unity but rather describes the original code of this project.

2. Architectural Representation

Unity utilizes what’s called component architecture. Every game object can be deployed any and as many components as necessary. Each component now represents one functionality that it adds to the game object. Ideally, each component should be it’s own system and not depend on another one.

3. Architectural Goals and Constraints

This component-based architecture, if properly executed, allows for a very clear and easy handling with functionality, that every object can be deployed with. It also allows for good scalability of the games scope with components being reusable for many different objects and game events. A good guide was provided by unity: https://unity.com/how-to/how-architect-code-your-project-scales

4. Use-Case View

Below, you can find the overall use case diagram that shows all use cases the application should provide.

UCD

Here you can find the various use case specification documents:

5. Logical View

5.1 Overview

Instead of enfocing a MVC architecture onto our game, we decided against it. There are multiple reasons for that:

  • Unity already handles most if not all of the visuals within its editor, using the Animator with .anim files for animations for example
  • Game object can possess any amount of custom properties similar to models
  • Any logic for any game object is contained within the corresponding script which controlls the game object Unity approach

5.2 Architecturally Significant Design Packages

As we already said, there isn’t a clear cut between MVC in the classes as the Model and controller have blended together and the view is handled elsewhere.

Class Diagram

6. Process View

N/A

7. Deployment View

This is our deployment diagram. The client computer will have the game binaries and game files such as save-games or highscores deployed on it.

Deployment View

8. Implementation View

N/A

9. Data View

The only persistent data stored for the game are:

  • Save files to store player progress
  • Game settings (e.g. mouse speed)

These are being handled by Unity’s internal PlayerPrefs.

10. Size and Performance

N/A

11. Quality

Unity recommends the component architecture to be used in the development of an application. Therefore the quality is at its best choosing this architecture.