Vous êtes sur la page 1sur 8

INTRODUCTION

APP ARCHITECTURE This document highlights the overall


game app architecture proposed, as
For:
researched for the client in the light of
Ahmed Alsubaie – Autism Kids Game their requirements set and client business
objectives.

Created By:
Umair Mirza | Product Strategist
E: umair@silicongraphics.ae
| C: 971 – 586 – 121494
W: silicongraphics.ae
App Architecture

API

Why are we building an API?

The API will be integral to the remote storage of data across the app. As it may be common for
a user to use the app on multiple platforms, it will be important to have a persistent storage of
data for each user. Using the API will also help decouple our infrastructure and allow us to scale
when necessary.

What type of API are we building?

The API being built will follow a REST pattern and will be authenticated through an Oauth2
system that will require a token passed through the header of each call. Ideally the API will act
as a way to store progress through the app and tie it to the user profile. The app itself will
contain the majority of the assets and architecture for maximum offline play while the API will
help point the user to their current progress in the app. This progress will include pieces such as:
Gamification Elements
Accomplishments

Levels Progression – Where did a user leave the app?


Number of correct and incorrect answers
Etc

How are we building the API?

My recommendation for an initial API is the Django Rest Framework. This Python framework has all
the required pieces needed to build the API, including an Oauth2 authorization system,
generated API documentation, a robust permissions system, and the Django Admin Panel for
manual modification to data. This will then be deployed on a Managed Rackspace or Amazon
AWS Ubuntu server using Nginx, MariaDB or PostgreSQL, and uWSGI
APP

Why are we building an App?

The app serves as the focal point of the ecosystem and serves to create the best user experience.
In comparison, a web app would not have the "native" feel that helps immerse the user and
creates the highest quality experience.

What type of App are we building?

For the MVP we are building an Android and iOS native app that runs on both phones and
tablets. The app will contain the majority/all of the graphical assets, text, and audio to provide
the fastest and most streamlined experience. Due to game like nature of the app and the
interest in expanding the app to include full-fledged games and more complex exercises, we
would recommend using a 2D game engine to support the interaction and interface. There are
many options for 2D game engines but here are our recommendations with pros and cons:

Engine Pros Cons


Corona 2D game framework Proprietary and closed source
specialized for
https://coronal mobile Access to any Native APIs will force us
out of the free plan Offline apps require
abs.com/ Supports compiling at least a Small Business Plan ($80/mo) If
to Android, iOS and revenue exceeds 500k an enterprise
Windows phones account is necessary ($200/mo)
All code is written in
Lua

Free access to the SDK

Cocos2d-X Open Source Slower development due to the


intricacies of C++ Lacks a full
2D game framework fledged game IDE like Unity or
http://www.coco for almost all platforms
Unreal
s2d-x.org/
Supports compiling
to anything from
desktop to mobile
Optimized with C++

Huge amount of free


resources, books and
guides
Cocos2d-JS Same as Cocos2d-X Logic written in javascript
but with the
Reports of apps compiling larger in size than
development speed
of Javascript the Cocos2d-X version
Javascript API Not as many resources and documentation
manipulates C++ as Cocos2d-X
objects directly for
great performance

LibGDX Open Source Reports of slower FPS than Cocos2d-X

3D and 2D game
framework for almost
all platforms

Supports compiling
to anything from
desktop to mobile
Optimized with Java

Longer history with


better
documentation than
Cocos2d-X

Unity 3D and 2D game Proprietary and closed source


framework for all
$75/month fee for the standard business
platforms plan. There is a free version but we would
quickly outgrow its limits with our current
Professional IDE for outline.
creating
environments

Considered one of
the top tier game
engines
Optimized with C#

With all of this in mind we would suggest Cocos2d-x for the best open source option
and Unity for the best proprietary solution.
Deployment

Why would we want to use a deployment system?

A deployment system provides a systematic way of distributing and beta testing an


app. This allows us to bug test and deliver experimental builds to select groups of
people for testing. With our current requirements, it may also be necessary to have
the option to modify the app and experiment with different flows to test user
engagement. This is all possible with a deployment system.

What type of deployment system will we use?

We will be using Apple's Test Flight for our apple devices and the Play Store beta
program for our Android devices. Both of these tools allow us to distribute the app
over the air to a select group of people.

Local Storage

Why would we want to use local storage?

Local Storage provides a layer in between our API and our App in storing and
queueing app progress. This allows for seamless progress whether the user is online or
offline and it ensures data is always correctly stored on the API layer. To avoid data
becoming stale between the remote database and the local store, data will be
stored and sent during certain "save" points throughout the app. If the app fails to
send the data, it will set an "unsaved" flag that will force a sync at the next save point.

What type of Local Storage will we use?

We recommend using Core Data built into iOS and SQLlite on Android, which allows
us to build data models for our users that can be serialized and sent to the API.

1
Silicon
Graphics
Architecture Diagram

Amazon AWS
Ubuntu/Nginx

2
Silicon
Graphics
Our Client

3
Silicon
Graphics
Thank You

Umair Mirza

Product Strategist

P: 971-568121494

E: umair@silicongraphics.ae

W:silicongraphics.ae

A: 1705, The citadel towers, business bay, Dubai, UAE

4
Silicon
Graphics

Vous aimerez peut-être aussi