Professional Documents
Culture Documents
W5 Srs
W5 Srs
W5 Srs
Specification
for
Version 1.1
Prepared by
Group Name: W5
Nguyen Quang Duc 20204876 duc.nq204876@sis.hust.edu.vn
Le Hong Duc 20204874 duc.lh204874@sis.hust.edu.vn
Tran Le Phuong Thao 20200604 thao.tlp200604@sis.hust.edu.vn
Hoang Van An 20204864 an.hv204864@sis.hust.edu.vn
Luu Trong Nghia 20204888 nghia.lt204888@sis.hust.edu.vn
La Dai Lam 20204918 lam.ld204918@sis.hust.edu.vn
Table of Contents
Table of Contents .......................................................................................................................... ii
Revision History ............................................................................................................................ ii
1. Introduction ..............................................................................................................................1
1.1 Purpose ........................................................................................................................................ 1
1.2 Document Conventions ............................................................................................................... 1
1.3 Intended Audience and Reading Suggestions.............................................................................. 2
1.4 Product Scope .............................................................................................................................. 2
1.5 References ................................................................................................................................... 2
2. Overall Description ..................................................................................................................3
2.1 Product Perspective ..................................................................................................................... 3
2.2 Product Functions ........................................................................................................................ 4
2.3 User Classes and Characteristics ................................................................................................. 4
2.4 Constraints ................................................................................................................................... 5
2.5 User Documentation .................................................................................................................... 5
2.6 Assumptions and Dependencies .................................................................................................. 5
3. External Interface Requirements ...........................................................................................5
3.1 User Interfaces ............................................................................................................................. 6
3.2 Hardware Interfaces................................................................................................................... 15
3.3 Software Interfaces .................................................................................................................... 15
3.4 Communications Interfaces ....................................................................................................... 16
4. System Features .....................................................................................................................16
4.1 Grappling Hook Movement ....................................................................................................... 17
4.2 Base and Obstacles Spawning ................................................................................................... 17
4.3 Monster Attack .......................................................................................................................... 18
5. Other Nonfunctional Requirements .....................................................................................18
5.1 Performance Requirements........................................................................................................ 18
5.2 Safety Requirements .................................................................................................................. 19
5.3 Security Requirements............................................................................................................... 20
5.4 Software Quality Attributes ....................................................................................................... 20
5.5 Business Rules ........................................................................................................................... 20
6. Other Requirements ..............................................................................................................21
6.1 Database Requirements ............................................................................................................. 21
6.2 Legal Requirements ................................................................................................................... 21
Revision History
Version Primary Author(s) Reason For Changes Date Completed
1. Introduction
This Software Requirements Specification (SRS) document outlines our solution to the client's
need for creating a vertical platform game. The topics covered in this document include an
introduction to the client's problem, the team's proposed solution on how the game system should
function, specific system and client requirements, and scenarios for each phase when players
play the game, along with accompanying illustrations.
This section provides a scope description and an overview of everything included in this SRS
document. Furthermore, the purpose of this document is described, document conventions and
references are provided.
1.1 Purpose
The purpose of this document is to give a detailed description of the requirements for the vertical
platform game. It will illustrate the purpose and complete declaration for the development of the
game system. It will also explain system constraints, interface, and interactions with other external
applications. This document is primarily intended to be proposed to a client for its approval and
as a reference for developing the first version of the game system for the development team.
The remainder of this document includes five chapters and appendixes. The second one provides
an overview of the system functionality and system interaction with other systems. This chapter
also introduces different types of users and their interaction with the system. Further, the chapter
also mentions the system constraints and assumptions about the product. The third and fourth
chapter provides the requirements specification in detailed terms and a description of the different
system interfaces. Different specification techniques are used to specify the requirements more
precisely for different audiences. The fifth chapter deals with non-functional requirements of the
system. The final chapter includes other requirements which may not be included in other
sections.
It is recommended that readers read this document in order. However, readers may choose to
skip to specific sections if they are only interested in a particular topic.
Our main goal is to create a compelling and satisfying experience for users. In addition to
customer satisfaction, our objective is to increase revenue through sales and advertising. The
game can also serve as a marketing tool to promote other products and services.
During the game, players help the character survive as it falls freely. The character can slow down
by using its hook to hang onto a surface. To fire the hook, players aim and choose the intended
object on the screen. The player's performance can be measured by the time survived or the
distance traveled. There is also a shopping system where players can upgrade the characters'
skills and purchase new items using coins collected during gameplay. Furthermore, users can
play the game on multiple platforms using a single account through synchronization option.
Advertising could be included in the game when necessary to increase profit for clients.
We will build the game on the Unity platform due to its ease of use in the game development
process and its additional features, including multi-platform deployment. Additionally, external
advertising platforms and APIs will be integrated into the game, and an external database will be
utilized to save users' gameplay progress across multiple platforms.
1.5 References
[1] IEEE Software Engineering Standards Committee, “IEEE Std 830-1998, IEEE
Recommended Practice for Software Requirements Specifications”, October 20, 1998.
[2] “Learn Game Development w/ Unity | Courses & Tutorials in Game Design, VR, AR, & Real-
Time 3D.” Unity Learn, https://learn.unity.com/. Accessed 4 June 2023.
Software Requirements Specification for Vertical Platformer Game Page 3
2. Overall Description
In the previous section, we state our purpose as well as scope of the product. To provide a
comprehensive understanding of the game and its functionalities, this section delves into the
product perspective, user classes, constraints, and user documentation. The product perspective
section provides an overview of the game and its characteristics. It highlights that the game is a
standalone product developed using Unity, designed to operate autonomously on Android and
iOS devices. The game includes functions such as hooking, gravitational effect, and object
generators. User classes and characteristics are described, including casual gamers, long
distance runners, longest lasting players, and bonus collectors. Constraints involve hardware and
software requirements, compatibility, and internet connection for synchronization. User
documentation includes a tutorial accessible on the title screen. The section concludes with
assumptions and dependencies.
The game itself is not a continuation of any predecessor, it is also not a replacement for certain
existing systems. The game is a new product which is implemented by using a game development
tool Unity. The application is designed to be self-contained and operates autonomously on
devices running the Android or iOS operating systems. It does not rely on or interact with any
external applications for its functionality.
Given the vast number of games available on smartphones and tablets nowadays, the process of
learning how to play can be quite complex. Our objective is to ensure that users understand the
gameplay at first glance. We achieve this by implementing a tutorial interface that appears each
time the user launches the application. To enhance user experience, we have avoided character
stories that may be annoying. Therefore, players will not need to search for a skip button to initiate
or resume gameplay. Instead, players can focus on gaining points, which are calculated based
on factors such as distance traveled, time, and bonus points received during gameplay. To
provide players with new experiences, we have developed a shopping system where users can
purchase various equipment and skins. Additionally, unlike the initial version of Flappy Bird, our
game allows players to pause the game at any moment. We have included a pause button to
enable this functionality. This feature has no negative impact on the user experience; in fact, it
enhances it.
Software Requirements Specification for Vertical Platformer Game Page 4
- Hooking. Character is equipped hooks that allow him to slow down his free fall and avoid
obstacles. This is a mechanism that allows players to cling to bases that appear when
falling from above.
- Gravitational Effect. This is one of the central mechanics of our game. Players will fall
freely when not clinging to objects.
- Object Generators. While the character is falling, there should be a mechanism to spawn
items. Generators can generate objects including traps, bases, monsters, or obstacles.
Generators produce objects independently; bases and traps, for example, will have
distinct generation procedures. The generators will also be adjusted to the game's
difficulty.
- Title Screen or Main Screen. The first viewable screen upon starting up the application,
containing several buttons. These buttons include the starting button to start a new game,
setting button for options, quit button to exit the application and a button to display tutorials.
- Shopping Menu. Within this menu, players will encounter a booth-like interface where
they can browse and purchase various items, including additional health, skins, or
equipment. The interface will display the players' available funds, allowing them to make
purchases accordingly. Players will only be able to buy products that are priced equal to
or below their current balance.
- Pause Menu. During the game play, a button always appears in the corner so that the
player can pause at any time. When the game is paused, the player will have access to
the Pause Menu. Several options such as restart/continue, volume setting, sensitivity
setting, or exit the game will be displayed.
2.4 Constraints
The game product is designed to run on touchscreen devices such as smartphones or tablets. To
install the game, devices must be running the Android or iOS operating systems. Certain minimum
hardware and software specifications need to be met, including requirements for storage, RAM,
processors, and operating system versions. Devices that do not meet the minimum RAM and
storage requirements may experience crashes. The smoothness and overall gameplay
experience will be influenced by the specifications of the RAM and processor.
Additionally, compatibility may not be available for some earlier versions of the operating systems.
Internet connection serves as a constraint for synchronization. Since the game is synchronized
across devices using individual accounts, an Internet connection is necessary. When a player's
devices are not connected to the Internet, the game can be played in offline mode, but
synchronization between devices will not occur.
It is assumed that users will use touch-enabled Android or iOS smartphones that meet the
minimum requirements to play this game. If the phone does not have sufficient hardware
resources for the app, for example, because the user has shared resources with other
applications, the program may not perform precisely as intended or at all.
We also assume that no external software will be utilized with malicious intent, such as cheating,
as it can impact the fairness and overall experience for other players. It is important to note that
the program cannot guarantee proper functioning if the user intentionally employs software that
disrupts the system.
- Communication Protocols
The software establishes communication with hardware components using specific
communication protocols. Examples of these protocols include widely used standards such
as Wi-Fi or LTE, which enable the software to connect to networks and receive
advertisements for commercial purposes.
- Performance Optimization
The software needs to consider the performance of hardware in terms of capabilities and
limitations. It may utilize techniques such as optimizing critical code sections by reducing
redundant computations, optimizing game assets such as images and audio files by
compressing them without sacrificing quality, or minimizing memory allocations during
gameplay. This ensures smooth gameplay, high frame rates, and efficient resource
utilization.
- Database
Game Data Storage: The game may interact with a database to store and retrieve player
data, such as scores, achievements, game process, and assessed history.
- Operating System
▪ Minimum requirements of a 2.3.3 Android OS version.
▪ iOS 8 or later OS version.
- Game Engine
Software Requirements Specification for Vertical Platformer Game Page 16
4. System Features
Building upon the previous section that discussed the external interface requirements of the
game, this section focuses on the system features that enhance the gameplay experience. These
Software Requirements Specification for Vertical Platformer Game Page 17
features include the Grappling Hook Movement, Base Spawning, and Monster Attack, which
contribute to the interactive nature, challenge, and progression of the game.
Throughout the game, the users can change their direction using a grappling hook, so this
feature has high priority. On the one hand, such features provide users with diverse ways to
enjoy free-falling games which usually let users perform jumping actions only (rating 6/9), yet it
demands the developers to carefully control the appropriateness of the physical interactions to
prevent bad user experience (rating 6/9).
• GHM-1: To avoid granting users too much power, the length of the grappling hook must be
restricted to a suitable value.
• GHM-2: There must be a cooldown time between each user using the grappling hook. It
will ensure that the user will not manipulate the hook to slow down by continuously tapping
on the screen.
To make the game harder bit by bit, we introduced two kinds of object: first, obstacles that
cause game over if character collide, and second, bases that characters can use grappling
hooks to dodge these obstacles and pass through it without receiving any consequences. The
bases provide users multiple ways to experience the main equipment, grappling hooks, so the
advent of these objects should have high priority. Managing the base spawning may become
the key to controlling the game difficulty (rating 5/9), but it must be programmed smartly unless
it may cause an error that dodging these bases is impossible (rating 6/9).
After the users start playing the games, these objects will appear deliberately to block the
players’ movement. Direct collision with these objects immediately leads to the end of the game,
so the users must attempt to dodge them to survive.
• BOS-1: The bases must appear according to an algorithm to both provide a way for users
to change their direction and concurrently become a challenge for users.
Software Requirements Specification for Vertical Platformer Game Page 18
• BOS-2: The obstacles also appear according to an algorithm to both provide a way for
users to change their direction and concurrently become a challenge for users.
• TBD
The difficulty of the game must be increased over time, and potential options include the advent
of monsters and the fight between them and users. Since there is a wide range of ways to make
the game hard progressively, the priority of this feature should be medium. While adding a
variety of monsters can improve the user graphical experience (rating 5/9), such features can
become a challenge for developers to optimize the display smoothness and to maintain winning
feasibility (rating 6/9).
As the users go further downward, there are monsters that take the players down. The monsters
may cause damage to the player, and the game is over if they fail to dodge it.
• MA-1: The position of both bases and monsters must be placed smartly to ensure that the
players can successfully overcome them.
• MA-3: The monsters can be killed using players’ equipment, and the monster may leave
some kind of rewards after player kill the monsters. The rewards may give the users some
money for shopping.
• MA-2: There must be time between two consecutive monster’s shots to benefit the players
dodging such bullets.
• The screen of the app is expected to refresh each 0.02 second so the minimum frame rate
should be 50 FPS.
• To reduce and keep the memory in the reasonable size, the app must be limited in the
number of objects that can be rendered on the screen at once time. This number depends
on the difficulty of the current state but must keep in moderation. For example, in the first of
the game, the bases for player to hook are more than the obstacles but later, the obstacles
become more, and the bases are less.
• The users do not want to wait for the app for a long time to launch so the app is expected
that the maximum time it should take for the game to load is about 30 seconds.
• Virtual Violence:
Prior to engaging in shooting scenes involving grappling hooks or guns, the violence
depicted is fictional and should not be replicated in real life.
The use of firearms or grappling hooks outside the game environment can cause harm,
injury, or legal consequences, and users must exercise caution and follow real-world safety
protocols when handling such objects.
• Protection Against Harmful Imitation:
The game shall include a safety disclaimer cautioning players against imitating or attempting
any dangerous actions or stunts depicted in the game, such as swinging from real-life
structures or attempting to use grappling hooks without proper training or equipment.
The game shall discourage players from mimicking the use of firearms, emphasizing that
real firearms should never be used by individuals without proper training, licenses, and
adherence to applicable laws.
• Visual Safety:
The game's visuals do not include rapid flashing or intense imagery that could trigger
seizures or cause discomfort to players. All visual effects and animations are designed in
compliance with established safety guidelines to prioritize user safety.
• Auditory Safety:
The game's audio does not include sudden or excessively loud sounds that could startle or
cause discomfort to players. Audio levels should be balanced, and an option to adjust or
mute the volume should be provided to prevent potential hearing damage.
• Target User Age Range:
Ten years and above - The game's mechanics and content, including the use of grappling
hooks, combat with monsters, and the presence of shooting scenes, suggest that it is
suitable for players who are at least 10 years old or older. This age range is typically capable
of understanding and engaging with more complex gameplay mechanics and can handle
the mild fantasy violence portrayed in the game.
Software Requirements Specification for Vertical Platformer Game Page 20
• Confidentiality:
The game should protect sensitive user information such as login credentials and personal
data from unauthorized access.
• Integrity:
The game should ensure that user data is not modified or corrupted during transmission or
storage.
• Authentication:
The game should require users to authenticate themselves before accessing certain
features or data.
• Authorization:
The game should ensure that users have the appropriate permissions to access certain
features or data.
• Non-repudiation:
The game should ensure that users cannot deny having performed an action.
• Availability:
The game shall be accessible to players 24/7, allowing them to play at their convenience.
• Portability:
The game is compatible with multiple platforms, including iOS, and Android. The game's
system requirements shall be defined and communicated to ensure compatibility with a wide
range of devices, specifying minimum hardware and software specifications.
• Reliability:
The system is trustworthy, and it is consistently good in performance. It can also be stated
as the system performs the function without any failure under certain conditions and
specified period.
• Robustness:
The game shall handle exceptional or erroneous inputs gracefully, preventing crashes or
unintended behavior. The game shall recover from any unexpected errors or disruptions
within 10 seconds, allowing the player to resume gameplay seamlessly.
• Usability:
The game has intuitive controls and menus, allowing players to navigate and interact with
ease. The average time required for a new player to understand the basic gameplay
mechanics and controls shall not exceed 10 minutes.
• In-App Purchases:
Players can purchase virtual items, power-ups, or additional content using in-game currency
(coin).
• Advertising Integration:
Software Requirements Specification for Vertical Platformer Game Page 21
The game may display targeted advertisements during gameplay for users’ purpose, which
maybe be disabled through an in-app purchase.
• Player Restrictions:
Players must follow the game's terms of service and community guidelines, which prohibit
cheating, harassment, or any behavior that disrupts the gameplay experience.
• Account Security:
Players are responsible for maintaining the security of their game accounts and must not
share their login credentials with others.
6. Other Requirements
Besides the nonfunctional requirements discussed earlier, this section delves into the specific
database requirements of the game. It addresses the need for a robust database system to
store and manage player data while ensuring concurrent operation support and data integrity.
Additionally, it emphasizes the game's adherence to legal requirements, safeguarding
intellectual property rights, and ensuring compliance with data protection and online safety
regulations.
• The game shall utilize a database system to store and manage player data, including user
profiles, progress, achievements, and in-game purchases.
• The database shall be capable of handling concurrent read and write operations to ensure
smooth gameplay experiences for players simultaneously.
• The database system shall have built-in data backup and recovery mechanisms to prevent
data loss in case of system failures or errors.