Wednesday, 7 November 2012

Design Plan!



Posted below is the design plan for Tank Rampage.  If you have any comments, please comment :P.

Tank Rampage
The development of a mobile game

Matthijs Rijlaarsdam & Michiel Nelissen

Goal
Main goal

·      Developing and publishing a 2d game for IOS and Android phones;

Sub goals

·      Developing an endless side scrolling game;
·      Implementing randomly generated endless levels;
·      Implementing physics-based gameplay;
·      Implementing a way to track and compare global high scores;
·      Implementing an in-game store for upgrades of the players character;
·      Monetizing Tank Rampage trough the implementation of ads and in-app purchases;

Secondary goals

·      Publishing essays on development topics and extracts from the project on www.tankrampage.blogspot.nl;
·      Researching the possibilities for IOS development on Windows.

Design Plan

            Tank Rampage is a side scrolling arcade game with physics. The player will control a tank trying to drive as far a possible whilst encountering buildings and enemies that he has to destroy. The player has to stay ahead of a missile following the tank. The tank and enemies are physically simulated.

Due to our short deadline, we will follow the K.I.S.S. philosophy for the development of Tank Rampage. K.I.S.S. stands for Keep It Simple Stupid. This means that as long as a solution works (even when it isn’t an elegant solution) we will not change it. E.g. when de development of Tank Rampage was started memory management on IOS had to be done by hand. Since IOS 4, Apple supports ARC (Automatic Reference Counting). ARC is recommended for new projects, as it prevents memory leaks and takes care of memory management automatically, which means less work for the developer. However, since Tank Rampage’s code isn’t optimized for ARC and since learning how to implement it will take time, we will not be using ARC.

            Tank Rampage will be using Cocos2d as its graphics engine. Cocos2d is written in objective-C. Cocos2d is open source and has a large active community, meaning that there is a lot of documentation on it. As its physics engine, Tank Rampage will be using Box2d. Box2d is written in C++. This is also a widely used open source engine that works well with Cocos2d.
            For Android we will be using the cross platform version of Cocos2d: Cocos2d-x. Since the decision to develop an Android version was made after the development was started, the IOS version is developed in Cocos2d. Following K.I.S.S., we will not change the IOS version to Cocos2d-x.
            For the making of spritesheets and level design we will be using Spritehelper and Levelhelper. Levelhelper is a visual level design application, designed to be used with Cocos2d and Box2d. It has its own API that acts as a wrapper for both Cocos2d and Box2d

            We will make the graphics and game art ourselves using a Bamboo drawing tablet and Photoshop. Also the game animations will be made in Photoshop. Due to our time constraints, music and sounds will be downloaded off the Internet.

            Because the tank can drive infinitely far, the levels have to be randomly generated. For this, there are two options. One being a purely random level generated by the game, the other being a level made of randomly selected parts of a level. The former gives the player a different level every time the game is played. The latter provides a level of constant quality and is also easier to program.

            The global high scores will be tracked on IOS through Apples Game Center API. Options for Android global high scores will be researched.

            The in-game store will feature new tanks and upgrades for the player’s tank, as well as new weapons. These can be bought with in-game currency. This currency can both be earned by playing the game and bought through in-app purchase. When an in-app purchase is made, the ads will be removed from the users app. 
            For the ads there are a few options. Apples IAd gives a high rate per ad placed, but has a limited fill rate (answered ad requests- a low fill rate means that there isn’t always an ad to show) and isn’t available in every country- including Holland. Admob is the biggest ad platform, with high fill rates but a lower rate per ad shown. A third option would be the use of AdWhirl, a free service that can combine both; it checks whether the highest rate platform has an ad available. If not, a lower rate ad will be requested from a different platform. For now, due to our limited time and country restrictions, we will focus on Admob, but this may change in the future.

            If we have enough time, we will publish articles on the development of Tank Rampage on www.tankrampage.blogspot.nl. Also the options for the development of IOS apps on windows will be researched if time allows us to.

            Tank Rampage will be published on both the App Store and Google Play Store. Depending on how much time we have, the first published versions might have some of our planned features not or partially implemented. If we are in danger of missing our deadline, features will need to be delayed or scrapped. If necessary, the in-game store content could be released later. Also tablet support is not a short-term goal, as this would require multiple sizes of graphics as well as new coding. Would we however have time left, this option will be researched. If time allows us to, we will also look into methods of marketing our app.

            Before an app can be released on the App Store, Apple has to review and approve it. This process can take a few days up to several months. Therefore, Tank Rampage might not be available for IOS until after the paper report is finished.



Planning


-       Week 45: Finished core gameplay and controls;

-       Week 46: Work on level generation and building implementation (coding and graphics) as well as tank health and reloading delay;

-       Week 47: Finished on level generation and building implementation (coding and graphics) as well as tank health and reloading delay- more buildings may be added later;

-       Week 48: Finished chasing missile, saving data as well as Game Centre implementation, start menu, in-game store and multiple weapons implementation;

-       Week 49: Finished menu, in-game store and multiple weapons implementation, finished ads implementation;

-       Week 50: Upgrade graphics: particles and animations, sounds finished. App for IOS send to Apple for evaluation as soon as possible;

-       Week 51 & 52: Work on paper;

-       Week 1: First draft of paper finished

-       Week 4: Final version of paper finished.

-     Release as soon as possible after approval from Apple.

Risks
Android
·      Not making the deadline
Even though the actual development of Tank Rampage is done for IOS, the Android deadline might come too early due to the research that still has to be done by Michiel. We hope to be able to estimate the completion date of the Android version as soon as possible, and we will then act accordingly.

·      Technical difficulties
As of now, we are not sure whether all the software used will work as expected cross-platform. We do, however, estimate this risk as very small, as all software used has been used for Windows (the platform used for Tank Rampage’s Android development) before. We have already experienced some delays due to being unable to install parts of the software required, but we expect these issues to be resolved shortly.

IOS
·      Not making the deadline
If we expect in an early stage of the development to not be able to meet our deadlines, we will need to postpone and/or remove features before release. Features to be scrapped or simplified, in order from first to last, are:

1.     In-App purchases of in-game money;
2.     Ads;
3.     Game Centre support;
4.     Less polished particles and graphics in general;
5.     The in-game store: either less content or the complete scrapping of the store;
6.     The ability to use different weapons.

No comments:

Post a Comment