S.H.A.R.D Rev 2
S.H.A.R.D Rev 2
REQUIREMENT
SPECIFICATION
By S.H.A.R.D
Table of Contents
0. Revision Table ...........................................................................................................................................3
1. Purpose of Document ...............................................................................................................................3
2. Project Introduction .............................................................................................................................3
2.1. Project Background .........................................................................................................................4
2.2. Project Definition .........................................................................................................................4
2.3. Project Goals and Scope .............................................................................................................4
3. The Process ..................................................................................................................................................5
3.1. Process Model .....................................................................................................................................5
3.2. Team Management ................................................................................................................................6
3.3. Project Constraints.......................................................................................................................6
3.3.1. Project Schedule .....................................................................................................................6
3.3.2. User Interactivity ................................................................................................................6
3.3.3. Interesting Game Play .........................................................................................................6
3.3.4. Breathtaking Scenes ..............................................................................................................6
4. Research ..........................................................................................................................................................6
4.1. Literature Survey and Technical analysis ....................................................................7
4.1.1. Graphics ........................................................................................................................................7
4.1.2. Sound API ......................................................................................................................................8
4.1.3. Network...........................................................................................................................................9
4.1.4. Other tools .................................................................................................................................9
4.2. Existing Solutions .........................................................................................................................9
4.2.1. Super Mario 3D ..........................................................................................................................9
4.2.2. Pokémon Games ......................................................................................................................... 10
5. Requirements ............................................................................................................................................. 10
5.1. Functional Requirements: ........................................................................................................ 10
5.2. Non-Functional Requirements: .............................................................................................. 11
6. Use Cases .................................................................................................................................................... 11
6.2. Use Case Diagram ........................................................................................................................... 11
6.3. Hardware Diagram ........................................................................................................................... 12
6.4. Use Case Tables ............................................................................................................................. 13
7. Project Scheduling ............................................................................................................................... 19
7.1 Gantt Chart ......................................................................................................................................... 19
Page | 3
0. Revision Table
# DATE DESCRIPTION
REVISION 0 27-03-2021 First attempt at making an SRS Document.
1. Purpose of Document
2. Project Introduction
This chapter introduces the reader about the RPG (Role Playing Games).
In introduction, first project background is discussed and then project
definition is discussed. Then we explain why such an idea appeals us.
Page | 4
As with the advent of modern era of games and multimedia the 2D games
plays the very important role. No matter how long it’s been since the
first game released, 2D games have always been fun to play and are a
reminiscent of retro artwork. Even in the year 2021 we see various 2D
games emerge in the form of action RPG or platformers. The basic purpose
of this project is to analyze study and understand the basic of game
development to make a game. So, for that purpose the foremost step which
is the core of game development need to be researched a lot.
RPG stands for “role playing game”, RPGs come in various types such as
2D, 3D, Platformer, 2.5D, First person, Third person, etc. The main
concept behind all of them are the same, we play as a fictional character
in the game to advance and learn about the plot.
Some RPG games have multiplayer mode, in which they can interact and
play with other people (and even friends). This mode is usually very
popular because the series of actions are always random. In campaign
(single player or default mode), the series of action are pre-written
and can get boring really fast.
3. The Process
Requirement
Specification
Story, Plot
and Design
Coding and
Building
Deployment
Page | 6
With only 5 members, there is no need for a team leader. All members
will be able to make decision. In our model all members would contribute
and come up with innovative ideas.
The said project is very tedious and time taking, so we have allocated
about 16 Weeks, or almost 4 Months to complete and publish this game.
During this process the team members will also be learning about all
the different aspects of game development.
Our game is intended to be used by people that have very basic knowledge
of using computers. Our user will interact with the game using basic
keyboard and mouse inputs. The only requirement is that they must
understand English.
Our level designs need to be top notch if we want to have any chance of
making this a good and enjoyable experience for our users. We also need
to make sure the textures are well optimized to consume minimal disk
space.
4. Research
Page | 7
We spent a lot of time and resources to find out what rendering engines
and APIs were best suited for our application.
4.1.1. Graphics
This engine is the most used engine out there, boasting over 15 top
selling titles across all genres. This is also a fairly easy to use
rendering engine as it is operated using C++. I think this engine paired
with good APIs and a third-party modeling software would provide easy
coding and well rendering. Since it has a very high royalty fee, we
didn’t this this was viable.
4.1.1.2. Java Engine
A fairly easy to use rendering engine that is operated using C#. This
engine has been used for games such as Assassin’s Creed, Deus Ex and
Rust. All three of these games are in the dominating market for user
satisfaction regarding fluidity and beauty of the renders. It can also
be used with third party APIs to make work easier.
4.1.1.4. GODOT Engine
This engine is balanced for 2D games like the one we are aiming for. It
has a lot of easier to use models and features that can be manipulated
Page | 8
using either Python, C++ or C#. The texture-based rendering system also
allows us to auto generate terrain and control animation with side
scripts. Since it allows for a lot of flexibility and ease of usage,
this was the one we settled for.
4.1.1.5. Metal API
Amongst all the other APIs, this is the most used one since almost all
Windows based games use it, however the optimization is very poor hence
the rendering engines can never take advantage of the complete hardware.
Albeit being easy to implement, we gave up on this.
4.1.1.7. Vulkan API
This API is fairly new and is used in most recent titles used released
after 2019, including but not limited to Dota 2, Doom, Warzone, Rainbow
6 Siege and Ashes of the Singularity. It provides much smoother
experience than DirectX and has better hardware level control. We think
this would be a better option for our project.
4.1.2.2. SDL
SDL is a well-known API that has many useful audio features, it is also
useable with many game engines and rendering engines. The only downside
is that the code is fairly long and it be overwhelming. The interface
is also not very optimized. Hence, this was not optimal.
4.1.2.3. SFML
The SFML is an alternative to SDL and is much easier to use, the commands
are more streamlined and code is easier to write. When armed with
plugins such as FMOD, this can be a very powerful and easy tool to
implement in our project.
4.1.3. Network
This game will not include a multiplayer mode, so at the moment, having
proper networking to transfer between the game and server is not
required, although modern game engines such as Unreal and Unity already
have very good multiplayer APIs for connection to servers. If needed in
the future we can use UDP protocol offered by publishers such as Steam
and EA (Origin).
1. Maya or blender will be best for making 3D scenes, along with some
2D figures and terrain.
2. Adobe Photoshop can be used for texture generation
3. Any IDE will suffice as long as it supports the programming
language.
4. For text editors, we can use the built-in ones in the game engines.
Almost all Pokémon games released on the switch and the 3DS are open
world and 2D + 3D mixed action games. Using similar art style and semi-
3D model, we can make our game more attractive and polished.
5. Requirements
• Menu: A menu screen where user can select either to start or exit
game.
• Player Sword Attack: The player attacks when the left mouse key
is pressed.
• Slime (Mob): There are slime enemies in game which follow the
player, if the player is inside the radar radius of the slime.
• Bat (Mob): Bat enemies move left and right and attacks a projectile
if the player is inside the radar radius of bat.
• Coins (Item): There are coins inside some rooms which player can
pick.
• Potion (Item): There are potions inside some rooms which player
can pick, and increases the player health by a certain fixed amount.
• Boss (Mob): The boss moves left and right and can only shoot big
projectiles which cause the most damage than any projectile in game.
The attack radius of boss is largest and can shoot no matter where the
player is.
• HUD: The player’s Health and Coin count should always be displayed
on screen.
• Game End: When the game ends, there should be a screen that shows
that ‘Game Ended’ and asks for user input to return to menu screen.
• Pause: The player presses the escape button to pause the game and
can resume it by pressing the same button.
6. Use Cases
6.2. Use Case Diagram
The use case diagram for all possible scenarios is given in the table
below:
P a g e | 12
<<extend>>
<<extend>> <<include>>
Get Killed
Output to Monitor
Game and
Hard Drive
Texture Files
Rendering
Graphics
Card Sound Output
User Input
From mouse and
keyboard
Speakers
P a g e | 13
ACTORS User
NORMAL FLOW Run Application -> Close Game -> Close Application
ACTORS User
ACTORS User
ACTORS Player
USE CASE ID E2
ACTORS User
USE CASE ID I3
ACTORS User
ASSUMPTIONS Nil
USE CASE ID E4
NORMAL FLOW Move around -> Get coin OR Move around -> Get potions
NORMAL FLOW Move Around -> Use Weapons -> Kill Mobs
USE CASE ID E5
NORMAL FLOW items collected -> Win Game OR Mobs killed -> Win
Game
EXCEPTIONS Level not loaded OR player hasn’t moved
7. Project Scheduling
We separated the main tasks and subtasks of our project to make a simple
and consistent schedule. To make sure we don’t fall behind due dates,
we assigned start and finish dates. All of this is made according to
the team members interest and skills. This schedule is presented in the
form of a Gantt chart shown below:
8. Risk Management
The project will be made with a good base level hardware specification.
Being 2D, it will require low amount of compute power. So, a GT730 and
an i3 2120 should be able to play this game without any issue, given
that DirectX 11 is used.
The development phase must have quality checks throughout the process
for a satisfactory and efficient result. Thorough testing and
compatibility reports are mandatory for the game to be playable for a
greater audience.
Using updated IDEs with newer environment and latest API versions would
be much more beneficial as it would result in minimum number of bugs.
The number of bugs is directly proportional to how old the APIs and
environments are.
9. References
1. https://www.unrealengine.com/en-US/
P a g e | 21
2. https://www.java.com/en/
3. https://unity.com/
4. https://godotengine.org/
5. https://developer.apple.com/metal/
6. https://www.microsoft.com/en-pk/download/details.aspx?id=35
7. https://www.khronos.org/vulkan/
8. https://openal.org/
9. https://www.libsdl.org/
10. https://www.sfml-dev.org/
11. https://www.blender.org/
12. https://www.autodesk.com/products/maya/overview
13. https://www.adobe.com/products/photoshop.html
14. https://supermario3dworld.nintendo.com/
15. https://www.nintendo.com/games/detail/pokemon-sun-3ds