Technical Design Document for Ramp!



Similar documents
Discovering Computers

Zeenov Agora High Level Architecture

QHR Accuro EMR IT Hardware Requirements

HiDrive Intelligent online storage for private and business users.

VIA CONNECT PRO Deployment Guide

USING GENIE REMOTELY

Proof of Concept Guide

Seagate NAS OS 4 Reviewers Guide: NAS / NAS Pro / Business Storage Rackmounts

Priority Pro v17: Hardware and Supporting Systems

Do you know what makes NetSupport Manager so unique?

Terminal Server Software and Hardware Requirements. Terminal Server. Software and Hardware Requirements. Datacolor Match Pigment Datacolor Tools

An Introduction to Cloud Computing Concepts

N750 Wireless Dual Band Gigabit Router Premium Edition

Additional information >>> HERE <<< Free Download buy website traffic. Click Here =>

Interact Intranet Version 7. Technical Requirements. August Interact

INUVIKA OPEN VIRTUAL DESKTOP FOUNDATION SERVER

Remote Desktop Gateway. Accessing a Campus Managed Device (Windows Only) from home.

VIA COLLAGE Deployment Guide

NetSupport Manager v11

Kaseya IT Automation Framework

01. Introduction of Android

Technology and Cost Considerations for Cloud Deployment: Amazon Elastic Compute Cloud (EC2) Case Study

Acronis and Acronis Secure Zone are registered trademarks of Acronis International GmbH.


G-CLOUD FRAMEWORK RM1557-vi 5DRIVE PROFESSIONAL STORAGE (PRO)

Sage 200 Online. System Requirements and Prerequisites

Access Your Cisco Smart Storage Remotely Via WebDAV

EXTERNAL STORAGE WHAT IS IT? WHY USE IT? WHAT TYPES ARE AVAILBLE? MY CLOUD OR THEIR CLOUD? PERSONAL CLOUD SETUP COMMENTS ABOUT APPLE PRODUCTS

Access Database Hosting. An introduction to Cloud Hosting Access databases from Your Office Anywhere


ReadyNAS OS 6.2. Reviewer s Guide

Requirements on terminals and network Telia Secure Remote User, TSRU (version 7.3 R6)

Dimension Data Enabling the Journey to the Cloud

How To Use Tsplashbox On A Pc Or Mac Or Mac (For A Pc) With A Windows 7 Computer (For Mac) Or Mac) With Tsplatro (For Pc) Or Ipad (For Windows) With An

How To Connect To Bloomerg.Com With A Network Card From A Powerline To A Powerpoint Terminal On A Microsoft Powerbook (Powerline) On A Blackberry Or Ipnet (Powerbook) On An Ipnet Box On

N600 Wireless Dual Band Router

Why Migrate from Citrix to Parallels?

N750 WiFi DSL Modem Router Premium Edition

EMR Link Server Interface Installation

AC1200 WiFi Modem Router Essentials Edition

2013 USER GROUP CONFERENCE

System Requirements. Filopto Practice Management System

farmerswife Contents Hourline Display Lists 1.1 Server Application 1.2 Client Application farmerswife.com

Audit4 Installation Requirements

Minimum Requirements for Web Based Applications

RSS Cloud Solution COMMON QUESTIONS

For windows erver, Which edition of Windows server 2008 is required ( i. e. Web / Standard / Enterprise )?? Kindly suggest.

DOCSVAULT Document Management System for everyone

The All-in-One Support Solution. Easy & Secure. Secure Advisor

Smart Anytime, Safe Anywhere. Climax Home Portal Platform. Envisage and Enable a Connected Future

Assignment # 1 (Cloud Computing Security)

CNJG Annual Meeting Pre-Meeting Workshop. Presentors: David Binder, Dir., IT Don Debias, Help Desk Mgr. John Bednar, Sr. Help Desk Specialist

INTRODUCTION OF IPAD USE AT UT. Introduction of ipad use at the University of Twente Content Introduction... 2

Quick Start. Nighthawk X8 AC5300 Tri-Band WiFi Router Model R8500. Package Contents. NETGEAR, Inc. 350 East Plumeria Drive San Jose, CA USA

ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy

Web-Based Data Backup Solutions

1/5/2013. Technology in Action

Who s Endian?

Systems Manager Cloud Based Mobile Device Management

Your guide to building great apps. Upgrade your skills and update your tools to create the next great app

How To Set Up An Ipa Ez On A Pc Or Mac Or Macbook Or Ipa Or Ipamorade

AT&T CLOUD SERVICES. AT&T Synaptic Compute as a Service SM : How to Get Started. Version 2.0 January 2012

A Guide to New Features in Propalms OneGate 4.0

Quick Reference for:

Getting Started with PRTG Network Monitor 2012 Paessler AG

WhitePaper. Private Cloud Computing Essentials

Portal for ArcGIS. Satish Sankaran Robert Kircher

Additional information >>> HERE <<<

Your Location Instant NOC using Kaseya. Administrator at Remote Location Secure access to Management Console from anywhere using only a browser

BASIC INSTRUCTIONS TO CONFIGURE ZYXEL P8701T CPE USING THE WEB INTERFACE

FileMaker Server 15. Getting Started Guide

NetLeverage UK ThinPoint Solution Overview Version 2 Copyright 2012 NetLeverage UK

NEW! CLOUD APPS ReadyCLOUD & genie remote access

N300 Wireless Router with USB

SeeTec ExpansionPackage

Cisco Small Business Smart Storage Solutions

N900 WiFi Dual Band Gigabit Router Premium Edition

Scalability of web applications. CSCI 470: Web Science Keith Vertanen

G-CLOUD FRAMEWORK RM1557-vi 5DRIVE PERSONAL CLOUD BACKUP

EZblue BusinessServer The All - In - One Server For Your Home And Business

REQUIREMENTS LIVEBOX.

General Hardware Requirements Workstation Requirements Application / Database Server Requirements Storage Requirements...

Offerte del 10 maggio 2013

Parallels Plesk Automation

ImproMed Hardware/Software Specifications

Access All Your Files on All Your Devices

SOFTWARE UNIT 1 PART B C O M P U T E R T E C H N O L O G Y ( S 1 O B J A N D O B J 3-2)

AC750 WiFi Modem Router ac Dual Band Gigabit

Agenda What can we do now? And 5 years from now we will still be current!

AC1600 WiFi VDSL/ADSL Modem Router ac Dual Band Gigabit

SCOPE OF SERVICE Hosted Cloud Storage Service: Scope of Service

Requirements on terminals and network Telia Secure Remote User, TSRU (version 7.1 R4)

Shellshock Security Patch for X86

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

DEPLOYMENT OF I M INTOUCH (IIT) IN TYPICAL NETWORK ENVIRONMENTS. Single Computer running I m InTouch with a DSL or Cable Modem Internet Connection

BYOD Mobile Device Chart

AC1200 WiFi High-Speed DSL Modem Router Simultaneous Dual Band Gigabit

Transcription:

Technical Design Document for Ramp! One Man Games (Carlo Altieri, matr. T07573, carlo.altieri@gmail.com) A.A. 2013 2014 V 2.4 20/06/2014

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 11.5 Potential security issues... 12

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 - 2D Graphics

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

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

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. - The development &testing architecture will survive also in the production step.

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. medium level PC + monitor Game designer Mac, Linux or Windows

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 Scanner Graphic tablet Musical keyboard UPS Color Laser Printer Whip or Cat o' nine tails Who Graphics developer Graphics developer Musician One for servers and one for PCs Everybody 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

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: ipad

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 Apache web server + PHP

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 Università degli Studi di Milano - OGD aa 2013-14 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. Ports & Services

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.

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.