Professional Documents
Culture Documents
Sedocumentationfinal 160825001132 PDF
Sedocumentationfinal 160825001132 PDF
INTRODUCTION:
1.1 PURPOSE:
The SRS document also gives testers and project managers a way to ensure the
game’s adherence to original vision. Although the document may be read from
front to back for a complete understanding of the project, it was written in
sections and hence can be read as such. For an overview of the document and
the project itself, see Overall Description (Section 2). For a detailed
description of the game play elements and their interaction with the character,
see System Features (Section 3). Readers interested in the game-play interface
and navigation between different front-end menus should see External
Interface Requirements (Section 4). Technical standards to which the team
will hold the project are laid out in Other Nonfunctional Requirements
(Section 5). The development schedule, meanwhile, will be maintained in the
Key Milestones (Section 6).
|P a g e 1
1.4 PROJECT GOAL:
Amazing Boxy is a simple Android Phone game that calls upon you to bounce
a brick up through a maze of portals while avoiding obstacles that are placed
along the way.
Amazing Boxy also requires a little patience and timing; otherwise the game
could drive you crazy. Available for low-memory devices, Amazing Boxy is a
fun game to have in your library for those occasions you need a little help
passing the time.
Amazing Boxy's main menu is minimal by design with two gaming modes
available and an option to rate the game in the Google Play Store. The two
gaming modes are Easy and hard. The key difference in these two modes is
the size of the portal you have to bounce your brick through.
Controlling your brick (which looks more like a black diamond) is done by
tapping the left or right side of the screen. Tapping the left side bounces the
brick upwards to the left and tapping the right will send the brick upwards to
the right. Taping these taps just right and your brick will move upwards in a
somewhat straight direction.
The maze you navigate through will have open portals in the solid lines/walls
that you must pass your brick through. You will also have blocks placed in
between the walls that you must avoid. Contact with any of the obstacles of
walls will end the game.
2. OVERALL DESCRIPTION:
2.1 PRODUCT PERSPECTIVE:
|P a g e 2
2.2 PRODUCT FEATURES:
GRAVITY ROTATION:
JUMPING:
DEATH ZONES:
TITLE SCREEN:
PAUSE MENU:
|P a g e 3
● Foresight: The ability to plan out the paths of multiple falling
objects to get each of them to their optimal positions.
3. PROJECT CONTEXT:
This includes Mile-stones, Development Strategy, Risk Analysis and Tools, and
Version Control Procedures.
3.1 MILESTONES:
3.1.1 PRESTUDY:
This phase consists of gaining an insight into the different subjects that
concern this project. This preliminary study will also include creating the
research part of the written report.
3.1.2 DESIGN:
This phase consists of gathering requirements and creating a software
architecture for the game. The phase will be revisited several times during
the implementation phase.
3.1.3 IMPLEMENTATION:
This phase consists of the iterative process of creating the game. The
overall architecture should be implemented, and then the actual code
should be written, along with tests and a thorough documentation. The
implementation phase is divided into three sprints.
|P a g e 4
MILESTONE START FINISH
Sprint 1 10 Oct, 2014 20 Oct, 2014
Sprint 2 22 Oct, 2014 5 Nov, 2014
Sprint 3 7 Nov, 2014 10 Dec, 2014
3.1.5 DEMONSTRATION:
This is a one day test consisting of letting several groups compete against
each other. The experiences and results from this demonstration will form
the basis for the evaluation.
3.1.6 EVALUATION:
This phase consists of evaluating the experiences and results from the
demonstration, and will form part of the basis for the platform design.
3.1.8 FINALIZATION:
This phase consists of finalizing the thesis document.
|P a g e 5
3.3 RISK ANALYSIS:
This section is about the risks in this project. They are separated into two parts,
general risks and demonstration specific risks.
INTERNAL CONFLICTS:
Conflicts between team members can occur, and is even more
likely since we will be working closely together over a long period
of time. It is therefore important to communicate openly, and
handle issues internally before they become too much to handle.
Should this be insufficient one could always seek help from the
supervisors, or in the worst case scenario - dissolve the group.
ANDROID DIFFICULTY:
Development with Android is something none of us are familiar
with. If we spend too much time getting an understanding of the
framework, development will take more time than expected and
other parts of the project will suffer. We can avoid this by planning
accordingly and allocate sufficient time to understand Android, as
well as start development early.
BATTERY:
The low battery time for smartphones is a well-known issue,
especially when GPS is enabled or the touch screen is used
extensively. This can disrupt the demonstration of our prototype,
should any of the phones run out of battery. We need to program
with battery usage in mind, i.e. use GPS as little as possible.
|P a g e 6
UNCLEAR TASKS:
When creating task descriptions, one runs the risk of making tasks
that are unclear. This can lead to frustration from participant and
they may get stuck. This can be avoided by scrutinizing tasks and
making sure that they are clear and have no ambiguity. Should that
not work, the participants could always contact a demonstration
supervisor and receive clarification.
3.4 TOOLS:
4. SYSTEM FEATURES:
4.1 GRAVITY ROTATION:
This mechanic gives the player full control over the orientation of the level
in relationship to the character. Gravity rotation replaces primary
movement controls (left and right) by allowing the player to incline
surfaces for sliding and “falling” at different speeds and directions.
|P a g e 7
4.1.2 STIMULUS/ RESPONSE SEQUENCES:
Step 1: The player slides their finger up/down the scroll bar on the right or
left side of the screen.
Step 2: The level rotates counter clock wise/clockwise around the
character in real time at a speed proportional to the physical distance
scrolled by the player.
REQ-1: The scroll bar must constantly update the current position of the
player’s finger to allow for real-time gravity repositioning.
REQ-2: The scroll bar’s effect on rotation must be scaled so that the
player will be able to manipulate the level with precision.
REQ-3: Different surface inclinations must affect the player’s velocity
vector.
REQ-4: Levels should be designed to take advantage of the implications
of this game mechanic.
4.2 JUMPING:
Being the secondary method of player input, jumping maintains the second-
highest game-play priority. This mechanic allows the player to navigate gaps
without having to be adroit at gravity rotation.
Step 1: The player presses the jump button located on the side of the screen
opposite the gravity scroll bar.
Step 2: The character jumps with a constant force.
REQ-1: Because the touch-screen is not pressure-sensitive, the jump force must
be standardized.
REQ-2: Levels should be adapted to this standard jump.
REQ-3: Jumping should take into account the current vertical and horizontal
velocities as well as the surface inclination.
REQ-4: Jump force should be large enough that the mechanic is not made useless
but not so large that gravity rotation can easily replace the effect.
|P a g e 8
4.3 DEATH ZONES:
Death zones are the opposite of level completion zones in that when
touched, they send the character back to the starting point of the level.
Some death zones take on the form of environmental obstacles; others are
black shapes which represents holes in the protagonist’s memory. Death
zones are a necessary replacement for bottomless pits, which prove
impossible to implement given the changeling nature of gravity. These
zones increase the game’s difficulty and incentivize good performance via
negative reinforcement. They should be prioritized in level design, as they
bring the game-play from “playable” to “enjoyable.”
|P a g e 9
4.4.3 FUNCTIONAL REQUIREMENTS:
REQ-1: The title screen must load and appear every time the game is
launched.
REQ-2: If the player quits the game during any stage of a level, they must
be returned to the title screen.
REQ-3: If the player presses the exit button, the game will end and return
the player to the phone’s regular interface.
REQ-4: If the player completes the game, the game will end and return the
player to the title screen.
| P a g e 10
Amazing Boxy has been developed for Android Version 2.2 and all subsequent
releases. The Android platform is graphically adaptable with a 2 dimensional
graphics library and a 3 dimensional graphics library based on OpenGL ES 2.0
specifications as well as hardware orientation, scaling, pixel format conversion
and accelerated 3D graphics.
| P a g e 11
make sure that no unauthorized player/ person will have access to his or her
phone.
7. SOFTWARE ARCHITECTURE:
7.1 ARCHITECTURE CHOICES:
| P a g e 12
in implementation on an architecture that does not really yield any
substantial benefits at this stage in the project.
8. IMPLEMENTATION PHASE:
8.1 REQUIREMENTS:
The requirements for this sprint are:
ID DESCRIPTION PRIORITY
AB – 01 The current route shall be retrieved from the High
database upon game start.
8.2 DESIGN:
| P a g e 13
8.2.2 TASK FLOW:
The first user interface screen the user encounter a welcome screen
containing a welcome text and a button for getting to the next task. When
the user pushes the next task button, the next task in the route is retrieved
from the database. Upon completing the task, the application automatically
retrieves the next task. If the user exits the game, the user will again
encounter the welcome screen, and the route and task is retrieved from the
database. If the user pushes the next task button, the application will load
the task that the user was on when he or she killed the application.
8.2.3 COHESIVENESS:
High cohesion leads to the reliability, robustness and reusability. Since it is
a game project therefore each module, each class and each file in the entire
project is somehow dependent upon one another and can’t be completed
independently. In order to detect the collision of the main character with
the boundaries or walls and any other obstacles we would have to access
the location of both the actual character and any of the colliding objects.
In almost every game the code is most of the time cohesive because each
object in the game has to obtain the information or fields of the other
objects in order to make the game physics work therefore the cohesion of
this project is high in comparison to the usual software projects.
Reducing the cohesiveness might lead the game to look like a fake physics
and not a clean work, hence high cohesiveness in this project can be said
as mandatory.
8.3 IMPLEMENTATION:
| P a g e 14
welcome screen is very simple and contains a LinearLayout, TextView
and a Button.
8.4 TESTING:
8.5 EVALUATION:
We encountered a few problems during the implementation of this sprint, due to
our inexperience with and our limited understanding of the Android framework.
For instance, we struggled a while with passing objects between Activities, and in
the end decided to implement a database to bypass the problem. Most of the other
problems originated in the usage of a database, like correctly loading game state
variables, objects, etc.
| P a g e 15
APPENDIX A: USE CASE MODELLING
| P a g e 16
PLAY GAME
PAUSE GAME
RESUME
GAME
SAVE GAME
EXIT GAME
SELECT
MODE
EASY
DIFFICULT
CHANGE BACK
GROUND COLOR
WHITE
BLACK
CHANGE CHARA-
CTER SHAPE
SQUARE
CIRCLE
DIAMOND
CHECK SCORE
| P a g e 17
APPENDIX B: FUNCTIONAL REQUIREMENTS
| P a g e 18
USE CASE: Play Game
ID: UC 1
ACTOR:
Gamer/Player
Pre-condition:
The application should have launched correctly
Flow Of Events:
1) On the title screen the play game button populates on the
screen.
2) Upon pressing the button the application should take the user
to the gameplay screen.
3) The tutorial screen populates, which should disappear on a
single tap.
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The game starts.
Flow Of Events:
1) When the game starts the pause button populates on the screen.
2) Upon pressing the button the application should take pause the
drawing of the graphics.
3) The screen fades and populates the exit game and resume game
buttons
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The gameplay and drawing should be paused, FPS should
be decreased to 1 or 0.
| P a g e 19
USE CASE: Resume Game
ID: UC 3
ACTOR:
Gamer/Player
Pre-condition:
The game should have been paused
Flow Of Events:
1) When the paused button is pressed the resume button should
populate on the screen.
2) Upon pressing the resume button the application should
resume and start drawing the graphics again.
3) The screen fades into the normal gameplay.
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The gameplay and drawing should be resumed, FPS should
be set back to the 60fps.
Flow Of Events:
1) When the paused button is pressed the save button should
populate on the screen.
2) Upon pressing the save button the application should save the
progress in the database.
3) The application takes the user back to the main/title screen.
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The information at that particular frame should be saved in
the database.
| P a g e 20
USE CASE: Exit Game
ID: UC 5
ACTOR:
Gamer/Player
Pre-condition:
The application should be at the title screen or the game should have
been paused.
Flow Of Events:
1) When the pause button is pressed the exit button appears, or
when user launches the application.
2) Upon pressing the exit button the application should kill all the
objects and the bodies and it should end the gameplay
3) The application closes.
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The game process is killed.
Flow Of Events:
1) The button is populated on the main screen of the application.
2) Upon pressing the select mode button the application should
take the user to the mode selection area
3) The different modes should be populated.
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The user gets into the mode selection area
| P a g e 21
USE CASE: Easy
ID: UC 7
ACTOR:
Gamer/Player
Pre-condition:
The mode selection event should have triggered
Flow Of Events:
1) The game mechanics and physics becomes easy
2) The user is brought back to the main screen
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The gameplay becomes easy
Flow Of Events:
1) The game mechanics and physics becomes difficult
2) The user is brought back to the main screen
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The gameplay becomes difficult.
| P a g e 22
USE CASE: Change Background Color
ID: UC 9
ACTOR:
Gamer/Player
Pre-condition:
The application should have launched
Flow Of Events:
1) The button is populated on the main screen of the application.
2) Upon pressing the change background color mode button the
background color of the gameplay would change.
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The background color has been changed during the
gameplay
Flow Of Events:
1) The button should be populated on the screen brought by
change background color use case.
2) Upon pressing the black color mode button the background
color of the gameplay would change to the black.
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The background color has been changed to the black during
the gameplay
| P a g e 23
USE CASE: White
ID: UC 11
ACTOR:
Gamer/Player
Pre-condition:
The application should be in the change background color mode
Flow Of Events:
1) The button should be populated on the screen brought by
change background color use case.
2) Upon pressing the black color mode button the background
color of the gameplay would change to the white.
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The background color has been changed to the white
during the gameplay
Flow Of Events:
1) The button should be populated on the start of the application.
2) Upon pressing the change character shape button, the user is
brought to the screen where he can choose different shapes of
the game character.
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The user ends up in the shape selection menu
| P a g e 24
USE CASE: Circle
ID: UC 13
ACTOR:
Gamer/Player
Pre-condition:
The application should be in the Change Character Shape mode.
Flow Of Events:
1) The button representing the circle shape is populated in the
change background shape color menu.
2) Upon pressing the circle shape button, the game character’s
shape is changed to the circle in the gameplay.
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The shape of the character is now a circle.
Flow Of Events:
1) The button representing the square shape is populated in the
change background shape color menu.
2) Upon pressing the square shape button, the game character’s
shape is changed to the square in the gameplay.
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The shape of the character is now a square.
| P a g e 25
USE CASE: Diamond
ID: UC 15
ACTOR:
Gamer/Player
Pre-condition:
The application should be in the Change Character Shape mode.
Flow Of Events:
1) The button representing the diamond shape is populated in the
change background shape color menu.
2) Upon pressing the diamond shape button, the game character’s
shape is changed to the diamond shaped in the gameplay.
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The shape of the character is now a diamond shaped.
Flow Of Events:
1) Upon pressing, the check score buttons leads to the list of the
highest scores or hall of fame.
2) Upon pressing back or swiping, the user is brought back to the
main screen
Secondary Scenario:
User exits the application by pressing the back or home
button of the Android device.
Post-condition:
The user saw the score list
| P a g e 26
APPENDIX C: DATA FLOW MODEL DIAGRAMS
| P a g e 27