• No results found

Technical Design Document for Ramp!

N/A
N/A
Protected

Academic year: 2021

Share "Technical Design Document for Ramp!"

Copied!
13
0
0

Loading.... (view fulltext now)

Full text

(1)

Technical Design Document for Ramp!

One Man Games

(Carlo Altieri, matr. T07573, [email protected])

A.A. 2013 – 2014

(2)

Summary

1. Document History ... 3

2. Overview ... 3

3. Development ... 3

3.1 Development tasks ... 3

3.2 Development team composition ... 4

3.3 Hardware, software and services ... 4

4. Testing ... 6

5. Production ... 6

5.1 hardware & software ... 6

5.2 Staff ... 7

6. Delivery ... 7

7. Gantt chart ... 7

8. Value added services ... 7

9. Customization service ... 7

10. Estimated Resources Needed ... 7

10.1 Hardware for development machines ... 7

10.2 Hardware for servers ... 8

10.3 Network hardware ... 8

10.4 Storage ... 8

10.5 Other hardware ... 8

10.6 Software licenses ... 8

10.7 Connectivity ... 8

10.8 Staff for development&testing ... 9

10.9 Staff for production stage ... 9

10.10 Other testing devices ... 9

10.11 Estimated cost ... 10

11. Infrastructure Details ... 10

11.1 What is on each server ... 10

11.1.1 Development ... 10

11.1.2 Production ... 10

11.2 How servers are connected ... 11

11.3 Capacity planning ... 12

11.3.1 Storage ... 12

11.3.2 Bandwidth ... 12

11.4 Scalability and extendibility ... 12

(3)

1. Document History

V. When Who What

1.0 20/04/2014 Carlo Altieri Creation / preliminary version 2.0 25/04/2014 Carlo Altieri Total rewrite

2.1 27/04/2014 Carlo Altieri Page setting and other minor changes 2.2 03/05/2014 Carlo Altieri Minor changes after public TDD correction 2.3 03/06/2014 Carlo Altieri Minor changes after reloading

2.4 20/06/2014 Alex Malavasi English revised

2. Overview

Ramp! is a 2D platform single player / multiplayer game.

A particularity of Ramp! is that there are 2 types of players: main players (those who are challenging trying to reaching the top of the level), and side players (they can control enemies trying to interfere with the main players)

In multiplayer mode, it needs a local area network to be played and one of the devices acts as server for itself and the other devices.

An Internet connection is required only during login (in this case not mandatory), when players add new level codes and if they want to add their score to the world chart. The game will be developed in Unity and there will be a company server to permit users’ registration, new level codes validation, world score charts management.

This server needs also a DB server and a mechanism of new codes’ emission.

Unity has been chosen because of its ease of development both for the prototyping and for the production stage and for the plenty of delivery platforms.

For information about interfaces and controls, competing platforms, GUI specifications, workflow and other game details not listed here see GDD.

The game uses traditional interfaces: keyboard, mouse, joystick/gamepad or touchscreen for tablets and smartphones.

3. Development

3.1 Development tasks

The development tasks are:

- Unity 2D development (clients)  GUI

 Level initialization  Players behaviour  Weapons behaviour

 Other characters (Enemies, …) behaviour  Networking

 Internet activities (Login, codes validation, score registration)  Other

(4)

 Characters  Objects

 Platform elements  GUI

 Web graphics elements - Music

 Background music

 Interludes and contextual jingles - Sound  Sound effects - Level design - Web/DB development  Registration  Login  Codes validation

 Game site (MediaWiki/Wordpress/HTML)  Score charts management

- Customer customizations  New codes emission  Media customization - Other

 Servers design, installation and setup

3.2 Development team composition

Each task does not necessarily correspond exactly to a person; I can imagine a development team made up of:

1 Game Designer and Team Leader => TL

1 Senior Unity Developer (with skills also in networking and sound effects) => UD 1 Web Developer (PHP/C/HTML/SQL) => WD

1 Junior Developer (PHP/HTML/SQL/C#/Unity) => JD (pronunciation: “Jedi”, so he must know everything, works 24/7 and only for personal satisfaction)

1 Graphic Designer => GD 1 Musician => MU 1 System Administrator => SA 1 System Architect => AR 1 Game Tester => GT Notes:

- TL, GD and GT must also have some skills on Unity development;

- Each component is responsible for its part of the documentation, the TL is the

documentation reviser and approval;

- The reference platforms during development are Windows (Desktop & Tablets) and Android (Tablets & Smartphones).

3.3 Hardware, software and services

1) Unity development (X 2) PC with Windows 8 22” monitor or bigger Unity Pro

(5)

Audacity DB client Git client

2) Graphics development PC (Mac, Linux or Windows) 22” monitor or bigger Scanner

Graphic tablet

Painting software (Photoshop, Paint.NET, Gimp …) Git client

3) Music development

PC (Mac, Linux or Windows) Monitor

Musical keyboard Cubase

Git client

4) Web & DB development PC (Mac, Linux or Windows) Monitor

C/C++, PHP, HTML Editors (Eclipse, Visual Studio Express, Notepad++, vi etc.) SSH client

SFTP client DB client Git client

5) RS: Repository server for software, media and documentation Server with Linux (Ubuntu Server)

Monitor

3 Hard disks in RAID 5, with hardware controller Local firewall

Software and hardware for local backup Bug tracking system

Git server 6) Web/DB server

Server with Linux (Ubuntu Server) Monitor

Lighthttp + FastCGI + PHP MariaDB/MySql

GCC 7) Other

Internet connection with static IP

Modem – Router – Access point with good firewall functionalities Good antivirus

Domain + Email service SSL certificates

(6)

Notes:

- The last stable or, better, the LTS version is ALWAYS mandatory for system software (o.s., DB, etc.)

- 5 and 6 can be the same server or, better, 6 can be virtualized on 5

- The graphic card is not so important during the developing and testing stage

3.4 Testing & Playtesting

Informal tests of the Unity clients are in charge of TL, JD, WD and GD during the first stage of development.

Informal tests of the web site and applications are in charge of TL, JD and UD. In an advanced stage of development will be hired one dedicated tester (=> GT). Security/load tests/stress tests on Web/DB servers will be in charge of the SM.

4. Production

5.1 hardware, software & services

The production architecture is composed of:

1) PWS: Portal Web Server (official site with forum, support and wiki) Linux (Ubuntu server)

MariaDB (for CMS&C.) Apache web server + PHP

Software for web contents (MediaWiki, Wordpress, etc.)

2) AWS: Application Web Server (registration, login, codes validation and world score chart)

Linux (Ubuntu server) Lighttpd + PHP + FastCGI 3) DBS: DB Server (DB for AWS)

Linux (Ubuntu server) MariaDB (cluster version) 4) Download server

External free service and torrent based download system 5) Other

Internet connection with static IP

Modem – Router – Access point with good firewall functionalities Domain + Email service

SSL certificates Notes:

- The last stable or, better, the LTS version is ALWAYS mandatory for system software (o.s., DB, etc.)

- 1,2 and 3 will be in hosting.

(7)

5.2 Staff

1 Supervisor

1 System Administrator

1 Developer for the maintenance of server applications and Unity clients

1 Web editor for web contents (game site and Facebook), customer support (only via site forum) and community management

5. Delivery

6.1 Estimated delivery time

2 months for the core game and the web servers, from 1 to 6 weeks for each required customization of graphics, levels and codes mechanism.

6.2 Delivery platform and strategy

Platform Delivery Costs

Windows desktop Web download 0€

Windows 8+ & Windows Phone Marketplace Microsoft 75€/year

Android Google Play 25$

iOS App Store 99$/year

The game will be advertised where you can play it (cafes, restaurants, fast foods or shopping malls, fairs, events …) and downloaded – if possible - pointing a QR Code. Other kinds of advertisement is in charge of customers of each customized version. References:

http://msdn.microsoft.com/en-us/library/windows/apps/jj863494.aspx https://play.google.com/apps/publish/signup/

https://developer.apple.com/programs/

6. Gantt chart

See attached Excel document, sheet ‘Gantt’.

7. Value added services

Official site with also a Wiki

Support forum (in particularly cases, after a post in the forum, directly by email) Facebook community (not support service via Facebook!)

8. Customization service

The graphic and music of the game can be customized on request for particular uses (i.e. for a brand, an event or an advertising campaign). Each campaign could need a new level codes delivery implementation (new hardware and software).

9. Estimated Resources Needed

10.1 Hardware for development machines

What Who O.S.

(8)

high level PC + big monitor Unity senior developer Windows 8 high level PC + big monitor Unity junior developer Windows 8

high level PC + big monitor Graphics developer Mac, Linux or Windows

medium level PC + monitor Musician Mac, Linux or Windows

high level PC + monitor Web/DB developer Mac, Linux or Windows

medium level PC + monitor System manager Mac, Linux or Windows

Note: one of the computers at least must be a Mac for testing and Apple Store deploying and one with Windows 8 for testing.

10.2 Hardware for servers

What Use O.S. Notes

High level server Repository, etc. Linux RAID 5 controller 3 hard disks 1TB

Tape Backup Unit ( + 4 cartridges 1TB) Low level server Web/DB development Linux

10.3 Network hardware

Switch – ADSL Modem – Router – Access point – VPN server with good firewall functionalities

10.4 Storage

See 10.2

10.5 Other hardware

What Who

Scanner Graphics developer

Graphic tablet Graphics developer

Musical keyboard Musician

UPS One for servers and one for PCs

Color Laser Printer Everybody

Whip or Cat o' nine tails Team Leader

10.6 Software licenses

If needed, licenses for PC O.S. (Windows or Mac) Unity Pro (2 licenses) + deploying licenses

Photoshop Cubase References: https://store.unity3d.com/products http://www.steinberg.net/en/shop/buy_product/product/cubase-75.html https://creative.adobe.com/plans/offer/photoshop+lightroom?store_code=it&loc ale=it&promoid=KIPGX

10.7 Connectivity

Internet connection (ADSL or optical fibre) with static IP Data SIM for smartphone testing

(9)

10.8 Staff for development & testing

Who Cost * Number of days

Game designer 250€/day 52 days

Unity developer 250€/day 52 days

Graphics developer 300€/day 38 days

Musician 200€/day 20 days

Web/DB developer 250€/day 29 days

Junior Developer 25.000€/year 48 days System administrator 35.000€/year 12 days

Game tester 120€/day 10 days

System Architect 450€/day 5 days

* Those are also costs for customizations

10.9 Staff for production stage

Who Cost **

Supervisor 40.000€/year

Developer 30.000€/year

System administrator 30.000€/year

Web editor 25.000€/year

** Must add year-end bonus Notes:

- €/day is different from €/year because of the type of employment contract: consultant vs employee

- System administrator is involved in the developing stage, production stage and customization stage

- The Game Designer could be also the Supervisor in the production stage and customization stage References: http://forum.unity3d.com/threads/131101-Average-Unity-Programmer-salary http://www.payscale.com/ http://www.gamasutra.com/view/news/167355/Game_Developer_reveals_2011_ Game_Industry_Salary_Survey_results.php

10.10 Other testing devices

Android:

7" and 10" tablets with a mix of Android 4.1, 4.2, 4.3, 4.4 (in total different 6 devices) Smartphones with Android 2.2, 2.3, 4.1, 4.2, 4.3, 4.4 (in total 6 different devices) TV Keys/TV boxes/consoles with Android (4 different devices, included Amazon Fire TV)

Microsoft:

8" Windows tablet 10" Windows tablet Microsoft Surface RT Windows Phone 8 (Lumia)

Apple:

(10)

iPhone

10.11 Other costs

- SSL certificates - ADSL with static IP - Domain + Email Service

10.12 Estimated cost

See attached Excel file for details.

Development

Staff: 62.100 € Hardware: 18.053 €

Licenses & Services: 9.850 €

Total: 90.003 € Production (x year) Staff: 125.000 € Hosting + Bandwidth: 6.941 € Other: 1.247 € Total: 133.188 €

10. Infrastructure Details

11.1 How services are deployed on servers

Because doesn't exist a real game server (one of the client acts as a server for each match), only a limited number of operations requires a centralized service, so I will provide an Application Web Server (AWS) for users registration, users login, level codes validation and world ranking management.

The PWS hosts web services based on Apache and PHP (game portal, forums, etc.).

11.2 What is on each server

11.2.1 Development

Repository server (RS)

Ubuntu server last LTS 64 bit MariaDB

Bugzilla

Backup software (i.e. RSync) Git server

11.2.2 Production

Portal Web Server (PWS)

Ubuntu server last LTS 64 bit MariaDB

(11)

MediaWiki

Wordpress + forum plugin

Application Web Server (AWS)

Ubuntu server last LTS 64 bit Lighttpd + PHP + FastCGI

DB Server (DBS)

Ubuntu server last LTS 64 bit MariaDB (cluster version)

Note: Last stable version ALWAYS!

11.3 How servers are connected

The Repository server (RS) is visible only inside the One-Man Games (OMG) lan and it can connect to the Portal Web Server (PWS), the Application Web Server (AWS) and the DB Server (DBS) only for administrative purposes and to launch backups (daily or weekly, full, incremental or differential, depending of the bandwith consumption).

PWS and AWS can be reached also from Internet.

AWS updates world score charts on the PWS internal DB (unidirectionally: AWS firewall blocks PWS accesses).

Each cloud server performs a daily backup to the provider infrastructure.

Each server has a local firewall and OMG lan connects to Internet trough a firewall.

(12)

RS: SSH / HTTP / DB port only from lan IPs

PWS: HTTP/HTTPS any IP, SSH only from OMG IP, DB port only from OMG IP and AWS IP AWS: HTTP/HTTPS any IP, SSH only from OMG IP

DBS: SSH and DB port only from OMG IP

11.4 Capacity planning

11.4.1 Storage

RS: the dimension of storage depends on technical and commercial

considerations: 3 hard disks, each 1TB (less quantity is not justified by the lower price), in total 2TB, a monster quantity for a single project’s files.

PWS: 5 gigabyte is a sufficient amount of storage to contain o.s., applications and data for the game portal, including the database

AWS: 5 gigabyte is a sufficient amount of storage to contain o.s., applications and data

DBS: I can imagine 1 million users (Wow!) and 100 million level codes released (not used!), one user or one code correspond to a record into a database table, 1k (quantity very rough), so approximately 100GB could be the right dimension for the storage of DBS

11.4.2 Bandwidth & Band consumption

PWS: 10 pages/sec, 50 KB/page mean 4 Mb/sec. and approximately 10TB/month. AWS: 1 million players, on average each player logins or adds code one time a day, 1KB of traffic each operation mean 30TB/month, for a bandwidth of 12 Mb/sec.

DBS: connected to Internet only for administrative purposes, 5TB/month could be a right quantity also considering an eventual daily backup of the virtual server snapshot and a bandwidth commeasured to ADSL connection of the office. Note: the traffic between VPSes concerns especially DBS and AWS and is commensurable with the previous calculations, also does not affect the billing (intra-servers traffic in the same farm is free of charge).

11.5 Scalability and extendibility

The cloud hosting service (Digital Ocean) I chose permit a full scalability in an easy way.

11.6 Potential security issues

Each server runs a local firewall (IPtables) properly configured (see 11.3), Logwatch and RKHunter.

Ramp! can be easily cheated because of the client-server architecture.

A player with a modified client can: - Win without playing

- Have every kind of facilities and power-up in a normal match - Register a fake score

- Play each level he wants (without inserting new codes)

With a fake AWS he can play each level he wants with a genuine (not modified) application without inserting new codes.

(13)

However, it is not important: codes’ cheating is irrelevant because they are easy to obtain (and apparently free of charge for the player) and gameplay cheating reduces the fun and a player cheating, because we are playing together, can be easily discovered and so in general this practice, we can imagine, will be avoided and in any case does not affect the business model.

References

Related documents

From the point of view of (multiagent) plan- ning [ 13 ], i.e., the problem of synthesising sequences of actions to reach a certain goal – in this case, arrival at a destination from

Before moving on to consider other problematic aspects of the Belgian euthanasia policy and practice I wish to digress and need to say something about the physician whose name

The annual costs of prepayment meters is £28 more than direct debit and £18 more than standard credit (Table 3), so low-income households are paying an average of £22 more than

• Customer data shall be loaded on to the secure storage Service by the Supplier’s accredited and security cleared staff who shall be responsible for all on-boarding

IBM® WebSphere® Application Server offers options for a faster, more flexible Java application server runtime environment with enhanced reliability and resiliency

The unique geological evolution of the Anadarko Basin played an important role in the complex present-day distribution of hydrocarbons. Variations in the burial history across

  According to tradition preserved in Matanzas among the   According to tradition preserved in Matanzas among the descendants of the old founders of the cabildo

Penelitian tentang Analisa Faktor-faktor Yang Berpengaruhi Terhadap Waktu dan Mutu Pada Pelaksanaan Proyek Pemeliharaan Jalan Di Kota Blitar bertujuan untuk mengetahui