W5 SWDD
W5 SWDD
Document
FOR
GROUP NAME: W5
TABLE OF CONTENTS
1. INTRODUCTION ....................................................................................... 4
2. SYSTEM OVERVIEW.............................................................................. 9
2
Group W5 Software Design Document
3
Group W5 Software Design Document
1. INTRODUCTION
1.1 Purpose
1.2 Scope
The scope of this Vertical Platformer Game is to provide players with a unique and
engaging gaming experience by combining the elements of a typical platformer game
with a vertical orientation. In this game, the character freely falls and relies on grappling
hooks to navigate between different platforms. Players are also required to engage in
4
Group W5 Software Design Document
To delve into further detail, this vertical platformer game is a captivating and
challenging gaming application specifically designed to immerse players in its gameplay.
It offers a dynamic environment filled with platformers where players assist the character
in surviving as it falls freely. By utilizing a hook, the character can slow down and securely
hang onto surfaces. To engage the hook, players aim and choose their intended target
on the screen. The game includes various challenges that progressively increase in
difficulty as players progress, alongside obstacles and interactive elements to intensify
gameplay engagement.
• Intuitive Controls: Designing user-friendly controls that are easy to understand and
responsive, ensuring a seamless and enjoyable gaming experience.
Furthermore, The Vertical Platformer game offers several benefits to both players
and stakeholders involved in its development:
5
Group W5 Software Design Document
1.3 Overview
This Software Design Document (SDD) presents the proposed software and system
designs for the development of a vertical platformer game, addressing the client's
requirement for an engaging and captivating gaming experience. The document
outlines the team's approach to designing the game system, including its functionality,
interactions, and specific requirements. It also provides detailed diagrams for each
aspect of the game's design, encompassing system architecture and data component
designs.
The topics covered in this document include an introduction to the software design
problem, a system overview, system architecture, data design, human interface design,
and a requirements matrix. This section provides a scope description and an overview of
all the components included within this software design document. Furthermore, the
document describes the purpose of its creation, provides document conventions, and lists
references for further information and guidance.
6
Group W5 Software Design Document
This section includes a compilation of reference materials that can assist the
development team in understanding industry best practices, design patterns, coding
guidelines, and other relevant information. Here is the list of reference materials:
[1] IEEE Software Engineering Standards Committee, “IEEE STD 1016-1987, IEEE
Recommended Practice for Software Requirements Specifications”, December 4, 1998.
[3] Template bài tập lớn nhập môn công nghệ phần mềm, Prof. Nguyen Thi Thu Trang,
November 2020.
[4] “Dirty Bomb Game Design Document”, Slash Damage, November 9, 2012.
[5] “Daily Tracker Software Design Document”, AMA Education System, December 16,
2021.
The following table defines all terms, acronyms, and abbreviations we will use
throughout this software design document.
7
Group W5 Software Design Document
8
Group W5 Software Design Document
2. SYSTEM OVERVIEW
In this subsection, we present a list of required and optional functions for our
project. For a more comprehensive understanding and detailed information, please refer
to the previous report on software requirements specifications.
9
Group W5 Software Design Document
Usecase diagram:
Usecase description:
• Login Usecase:
10
Group W5 Software Design Document
Actor User
Description The user logs in to the system so that the money and high score
can compare with other players.
Prior No
condition(s)
Priority Optional
Actor User
Priority Optional
• Synchronization usecase
11
Group W5 Software Design Document
Actor User
Description User save his best performance and the remaining money using his
username. The score and bonus points will be saved and used in
another device with his username.
Priority Optional
Actor User
Description User goes to shopping system and buys items which price less than
number of moneys of that user.
Prior condition(s) No
Priority Optional
12
Group W5 Software Design Document
Actor User
Prior No
condition(s)
Priority Optional
Basic flow 1. From the Homepage, user clicks to the Shopping button ->
Watch Ad button.
2. The system will display a short video, and the user has to
wait until the video finishes.
3. The system adds an amount of money for users.
4. (Optional) User goes backs to Homepage by pressing quit
button.
• Registration usecase:
Actor User
13
Group W5 Software Design Document
Priority Optional
Basic flow 1. User clicks to Login -> Register from the Homepage.
2. User enters the new account username in the text field. The
system will check whether the username already existed.
3. Then, the system will automatically go back to the Login
page. Users can use the newly created username to login or
back to Homepage.
• Logout usecase:
Actor User
Description User logs out from his account to enter Anonymous mode.
Priority Optional
Actor User
14
Group W5 Software Design Document
Prior condition(s) No
Priority Optional
Actor User
Prior No
condition(s)
Priority Optional
In this section, we will present about core gameplay and game mode.
Core Gameplay
15
Group W5 Software Design Document
• Grappling hooks: Character will be equipped grappling hooks and hooks can
be reused multiple times. The grappling hooks can be used in some situations:
o The character uses hooks to hang himself on the base to slow down and
change direction. Users need to press on the screen region where the base
appears. If not, the hook cannot be launched. Users can press anywhere on
the screen to disable the hook.
o The character uses hooks to attack monsters. Players need to press on the
region of the monster to launch the hook. Whenever the hook touches the
monster, it will come back to the character. The direction of falling will not
be changed.
It is important to note that in the case of clinging on base, the hook will be
disabled automatically after a short time if the player do not perform the
second press on the screen.
• Obstacles mechanic: In the way of falling, obstacles are spawn and grappling
hooks are not working on obstacles, so the player needs to avoid them. The
game will end if the character collides with one obstacle.
• Money mechanic: The money will appear on the way down. The character
collects them by touching them with his body, not the grappling hook. Each
collected money item has value of 1. All the money will be added to the user’s
account after the game is ended.
16
Group W5 Software Design Document
Game Mode
We implement some play modes so that players can choose between two different
modes to play. Any players can play in Anonymous mode and use a username to
switch to play with his account.
• Playing in Anonymous mode: The highest score, all purchased items, and the
points remaining are only saved in the current device. Users cannot save and
synchronize across devices. Moreover, viewing leaderboard option will be
disable in this mode. The shopping system and settings are still accessible.
• Playing with an account: To play in this mode, any user has to have an account
that is a username. They also need to log in before performing any operation.
Playing in this mode has more benefits. Users save their top performance and
bonus points. All items will not be lost when users play on another device. The
leaderboard option will be accessible so that users can find them here. The
synchronization option is not automatic. It means that players must manually
save their profile by pressing the synchronization button.
It is important to note that the difficulty of the core gameplay stays the same when
users switch between two game modes.
3. SYSTEM ARCHITECTURE
17
Group W5 Software Design Document
Modules that are connected by a dashed arrow represent the relationship between
these modules: a package depends on another package. For example, Player is one
of modules that need assistance from Terrains, the arrow is considered as dependency
notation.
There are two types of dependency in our system. The dependency with <<access>>
indicates that one package requires assistance from one or more functions of another
package. The dependency with <<import>> illustrates that functionality has been
imported from one package to another.
In our system, we use an external system named Firebase. The external system can be
used as a small database to store users’ username, their highest score, and their
properties.
18
Group W5 Software Design Document
• Game Manager needs helps of Hooks and Player to manage the character and
objects during the gameplay.
• Player and Hooks need to access to Terrains so that they can manage the
collision between obstacles and them, for example, the collision between hooks
and Base (subsystem of Terrains) or the collision between the character and
Money (subsystem of Terrains).
• The Ads manager and shopping manager require assistance from Start Screen
Manager to refresh video and the money remaining, respectively.
19
Group W5 Software Design Document
We decided to give a functional description. Figure 3 illustrates the level-0 Data Flow
Diagram of our game system. The structural decomposition diagram is showed in Figure 4
The structural organization of the system will be divided into two main components
Gameplay and Environment, corresponding to two scenes in the gameplay and in the
lobby, respectively. There are subsystems inside Gameplay: Player and Terrain. The terrain
will include objects’ modules, including Base, Money, Monster, and Obstacle. The
Environment contains several subsystems: Shopping system, Database manager, Audio
manager, and User Interface manager.
In fact, we have already considered that the architecture of In Game Manager and Start
Screen Manager should be the same. The In Game Manager will manage objects and/or
events during the gameplay, while Start Screen Manager controls in the lobby. However,
we noticed that events and objects behave entirely differently during gameplay than
they do on the main screen.
We have also come up with an idea to merge hooks and the player because people
and hooks always move together. In some contexts, “hooks are fired” has the same
meaning as the character fires the hook. However, there are some cases in which hooks
and the character behave completely differently. For example, in the collision of hooks
and humans with monsters or money (belonging to Terrains). By the contradictory, we
decide to go with the architecture proposed in Section 3.1.
4. DATA DESIGN
For the game project, we used a database from cloud computing service to store users’
information after they had completed registration. The entries of user table consisted of
simple information like username, password, achievement, etc., and these data help
users to login their accounts in different devices. For more specific, we decided to use
Firebase as a storage for user authentication purposes because it was both easy to get
familiar with and very popular for online authentications.
A game contains not only lots of graphics components, such as images for backgrounds
21
Group W5 Software Design Document
or 2D design models for character’s appearance but also many packages to help the
developers build the game. In our project, as we used Unity to develop a game, this
application enables us to store and organize the majority of data within project folders.
Furthermore, we also stored some physical parameters or settings for the game in our
defined scripts to ensure that the game can run properly.
User_high_score Integer The highest score that user can get 0-9999
22
Group W5 Software Design Document
5. COMPONENT DESIGN
In this section, we take a closer look at what each component does in a more systematic
way.
• Grappling Hook: Users can shoot grappling hook to a desired base by clicking on
it, and the hook will be shot in a straight line from user to the base. The character
will have momentum after the hook reaches the destination, which makes the
character swing around the attached point for an interval until the friction forces
stops them. When the character is holding the base, users can tap to the screen to
immediately release and continue free falling. If they do not choose to release, the
23
Group W5 Software Design Document
grappling hook will automatically release after a fixed duration. The length of the
grappling hook is also restricted to a certain number to make the game
challenging in some situations, which mean the user must smartly choose the
shooting time to avoid game over happens.
• Bases and Obstacles: Using the algorithm, the bases will appear appropriately to
help the player easily overcome obstacles. As the players go further down, but still
winnable.
• Monsters: Monsters are quite like obstacles as its advent is to kill players and users
must dodge it. However, monsters can move in horizontal direction, which makes
it’s difficult to avoid it, yet users can kill it using grappling hooks by correctly aiming
to it and shooting the hooks.
• Login system: The system enables users to create accounts, save their progression
in a cloud database, and continue playing on different devices.
• Shopping: While falling, the characters can collect coins to buy things in the store.
The stores allow users to spend their money on buying new equipment like new
skin, and it does not have any prerequisites to buy any skins.
• Advertisement: The advertisements can grant users some excellent rewards after
watching sponsored videos
For a vertical platform game, our system is designed to provide a range of features and
functionalities to meet the user’s perspective. It aims to be intuitive and user-friendly,
allowing users to accomplish tasks efficiently. In this section, we give an overview of the
functionality of the system and how users can utilize it to complete expected features,
along with the feedback information displayed.
24
Group W5 Software Design Document
• Game Controls: The system provides intuitive touch-based controls optimized for
mobile devices. Users can use tapping gestures on the screen to control their
character’s movements and actions.
• Character Movement: The system triggers the free fall state of character
automatically at specific time in the game. This allows the character to descend
rapidly without using input. Users can utilize the grappling hook by touching on the
screen. The grappling hook helps decrease the velocity of character, change
direction, latch onto bases to gain more observations, overcome obstacles, or fight
monsters.
• Rewards: The system places coins throughout the vertical game in the air. Users
can guide their character to collide with these coins during gameplay. The system
assigns a value or point system to each coin collected. Each coin collision adds to
the currency balance of user, contributing to their overall progress and potential
rewards. Furthermore, the system allows users to voluntarily choose to watch
advertisements in exchange for rewards. Users can opt-in to view ads at their
discretion, without interruption the gameplay experience.
• Scoring and Progression: The system tracks the progress of the user and scores the
total distance the character can move for each play turn. It displays the current
score, high score status, and the currency balance of user on the screen to
provide feedback and motivate users to achieve better distances.
• Feedback Information: The system provides feedback to the user through various
means:
25
Group W5 Software Design Document
o Visual Feedback: Visual cues, animations, and effects are displayed on the
screen to indicate successful actions, interactions with the environment, and
the overall game state. This can include dynamic character movements
swinging motions, or visual indicators for attaching the grappling hook.
o Progress Updates: The system displays the distance and money covered by
the character and updates the score based on the performance of the
user. This feedback encourages users to improve their skills and achieve
higher scores.
Displaying screenshots of the interface from the user’s perspective helps provide a visual
representation of the user experience. These screenshots, which are created for practical
uses, allow viewers to understand the layout, elements, and interactions within the
interface.
26
Group W5 Software Design Document
27
Group W5 Software Design Document
In a vertical platform game, several screen objects play important roles in shaping the
gameplay and user experience. In this part, we will discuss some key screen objects and
the associated actions found in our game.
o Gravity-based descent: The sprite falls due to gravity, requiring the player to
control its descent and avoid obstacles.
o Launching the hook: The player can initiate the grappling hook action by
tapping in specific direction on the screen.
o Attacking monsters: When the sprite uses hook to defeat a monster, which
potentially eliminates it from the game and collects a value of money.
o Colliding with the sprite: The player-controlled sprite collides with obstacles,
which can result in ending the game.
- Monsters. Dynamic monsters are enemy entities that hinder the player’s progress
and pose threats.
o Colliding with the sprite: Contacting with monster’s results in ending the
game, which similarly to the action of obstacles.
28
Group W5 Software Design Document
- Bases. Platforms or bases provide safe zones for the player to attach by grappling
hook.
o Respawning: Bases may serve are respawn points in the next environment,
allowing them to reposition automatically, without designing the pre-
determined map.
These screen objects and associated actions interact to create the gameplay
experience in a vertical platform game. The skill and strategy of the player in controlling
the free-falling sprite, navigating through obstacles, dealing with monsters, and utilizing
bases play vital roles in progressing through the game and achieving high performance.
7. REQUIREMENTS MATRIX
29
Group W5 Software Design Document
MA-2 The monsters can be killed The grappling hook can kill
using players’ equipment, the monster when they
and the monster may leave
collide.
some kind of rewards after
player kill the monsters. The
rewards may give the users
some money for shopping
30