Skip to content
Snippets Groups Projects
Commit 0493d4a7 authored by Trandinh Thien's avatar Trandinh Thien
Browse files

Updated SRS again

parent 289d6c97
No related branches found
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
......@@ -91,6 +91,7 @@
\midrule
October 10, 2016 & All & Revision 0 of Requirements Document \\
October 21, 2016 & Thien Trandinh & Added changes to functional and Non-functional requirements \\
December 3, 2016 & Thien Trandinh & Added section 5 symbolic parameters and revised document for current project \\
\bottomrule
\end{tabularx}
......@@ -129,7 +130,7 @@ Other stakeholders of the project include:
\textbf{Fit Criterion:} The game shall be developed to support these three operating systems, and testing will ensure that the game runs smoothly on all three operating systems.
\subsubsection{Off-the-Shelf Software}
The product will be utilizing XNA Game Studio for game development, Adobe Photoshop for graphic editing, and Audacity and FLStudio for music and sound editing. A device that is able to run Visual Studio with XNA Game Studio is also required for project development. Customers must be in possession of an operating system to be able to play the game, and a pointing device to be able to select items on the screen.
The product will be utilizing XNA Game Studio for game development, Adobe Photoshop for graphic editing, and Audacity and FL Studio for music and sound editing. A device that is able to run Visual Studio with XNA Game Studio is also required for project development. Customers must be in possession of an operating system to be able to play the game, and a pointing device to be able to select items on the screen.
\subsubsection{Schedule Constraints}
Full development of the game does not have any applicable schedule constraints. However, the basic functions of the game must be fully completed by December 2016.
......@@ -162,7 +163,7 @@ The budget for the project is \$0 as all software required for development is pr
\subsection{Relevant Facts and Assumptions}
\subsubsection{Relevant Facts}
The game that Blaze Brigade will re-implement, Tactics Heroes, was initially named Fire Emblem Factory. The game is heavily influenced from a Japanese game series called "Fire Emblem", which was released in 1990 by Intelligent Systems and Nintendo. Fire Emblem revolutionized the genre by incorporating RPG elements,
The game that Blaze Brigade will re-implement, Tactics Heroes, was initially named Fire Emblem Factory. The game is heavily influenced from a Japanese game series called Fire Emblem, which was released in 1990 by Intelligent Systems and Nintendo. Fire Emblem revolutionized the genre by incorporating RPG elements,
and as such, the success of the genre in modern day can largely be attributed to this series. In addition, Tactics Heroes is still in alpha stage, and only basic gameplay have been fully implemented. Future content for additional features in Tactics Heroes is still under works by its developers.
\subsubsection{Assumptions}
......@@ -228,48 +229,31 @@ The game will be available to play on all desktop and laptop capable of running
The following contains the functional requirements of the project:
\subsubsection{GUI}
\subsubsection{GUI} \label {GUI}
\begin{enumerate}
\item The GUI will be controlled with mouse input \\
Fit Criterion: \\
The player is able to navigate the entire game using mouse control and input.
\item The GUI will be controlled with mouse input
\item The game will contain a main menu on screen allowing users to play game, read how to play, or exit upon launch \\
Fit Criterion: \\
A navigable main menu appears upon executing the game executable.
\item The game will contain a main menu on screen allowing users to play game, read how to play, or exit upon launch
\item You will be able to select New Game from the main menu \\
Fit Criterion: \\
A new game starts upon clicking new game from main menu.
\item You will be able to select How-To-Play from the main menu \\
Fit Criterion: \\
How to play window pops up upon clicking How to Play from main menu.
\item You will be able to select exit Game Game from the main menu \\
Fit Criterion: \\
The game will exit upon selecting exit game from the main menu.
\end{enumerate}
\subsubsection{Game Structure}
\subsubsection{Game Structure} \label{gameStructure}
\begin{enumerate}
\item The game shall be turn-based \\
Fit Criterion: \\
Only 1 unit can be controlled to perform actions at a time.
\item The game shall be turn-based
\item The game will consist of 2 players alternating turns \\
Fit Criterion: \\
When one player finishes performing an action with all their units, it will change to the other player's turn.
\item The game will consist of 2 players alternating turns
\item Each player will receive the same amount of units, and be unable to gain anymore until the next match. \\
Fit Criterion: \\
Each player will start the game with 4 warriors, 2 mages, and 2 archers.
\item Each player will receive the same amount of units, and be unable to gain anymore until the next match.
\item During a unit's turn, clicking a unit will give a drop down menu with available actions \\
Fit Criterion: \\
\item During a unit's turn, clicking a unit will give a drop down menu with available actions
\item A unit will be able each of these 3 actions available from drop down menu once per turn:
\begin{enumerate}
......@@ -279,77 +263,51 @@ The following contains the functional requirements of the project:
\item Item A unit will be able to equip a (different) weapon from the item drop down sub-menu
\end{enumerate}
Fit Criterion: \\
A Warrior can go to item drop down menu, change equipped weapon to iron sword, then move 4 units right, then attack the unit directly adjacent to it.
\item A unit shall only be able to move and attack once per turn \\
Fit Criterion: \\
A unit will be greyed out and be unable to perform an action until next turn after finishing their turn.
\item A unit shall only be able to move and attack once per turn
\item One side will be victorious when the other side has no playable units left \\
Fit Criterion: \\
When one player loses all their units, the other player wins the game.
\item One side will be victorious when the other side has no playable units left
\end{enumerate}
\subsubsection{Unit Movement}
\subsubsection{Unit Movement} \label{Movement}
*Refer to \ref{Actions} for details on 'move'
\begin{enumerate}[resume]
\item Units will be able to select move as an available option after clicking on a unit that has yet to perform its action \\
Fit Criterion: \\
After selecting a unit that hasn't moved, the player can select move from drop down menu in which case all movable and attackable nodes will be highlighted in blue and red respectively.
\item Units will be able to select move as an available option after clicking on a unit that has yet to perform its action
\item Units will only be able to move within their move range \\
Fit Criterion: \\
A player will not be able to move a unit outside of the blue highlighted nodes even if they try to click a tile outside of movement range.
\item Units will only be able to move within their move range
Fit Criterion:
\item Units shall not be able to pass through obstacles \\
Fit Criterion: \\
The path finding algorithm will not go through the obstacle, therefore the obstacle will not be highlighted in blue for moveable.
\item Units shall not be able to pass through obstacles
\end{enumerate}
\subsubsection{Unit Attacking}
\subsubsection{Unit Attacking} \label{Attacking}
*Refer to \ref{Actions} for details on 'attack'
\begin{enumerate}[resume]
\item Units will be able select attack as an available option after clicking on a unit that has not attacked this turn, regardless of having moved or not \\
Fit Criterion: \\
A player selects attack from drop down menu and can select attack.
\item Units will be able select attack as an available option after clicking on a unit that has not attacked this turn, regardless of having moved or not
\item A unit will only be able to attack an enemy unit within it's attack range \\
Fit Criterion: \\
A player clicks on an enemy unit within the red highlighted tile and succesfully attacks.
\item A unit will only be able to attack an enemy unit within its attack range
\item Units will be unable to move after attacking. \\
Fit Criterion: \\
A player is unable to select move from the drop down menu after performing an attack.
\item Units will be unable to move after attacking.
\item Attack information displaying damage, hit rate, and crit rate will be displayed to screen \\
Fit Criterion: \\
After successfully selecting an enemy unit to attack, damage, hit rate, and crit rate are shown for both units involved in the battle.
\item Attack information displaying damage, hit rate, and crit rate will be displayed to screen
*Refer to \ref{Combat} for details on how damage calculation is dealt
\item Units will counterattack upon receiving an attack as long as they survive and is within attack range \\
Fit Criterion: \\
After a unit takes 5 damage from an enemy unit, it performs a counter attack dealing 6.
\item Units will counterattack upon receiving an attack as long as they survive and is within attack range
\item Units will lose HP according to damage calculation. \\
Fit Criterion: \\
After a unit attacks another unit, and loses 5hp. The HP bar drops to show this change
\item Units will lose HP according to damage calculation.
\item Units that fall below 1 HP will be deceased and no longer be able to be used in the current battle. \\
Fit Criterion: \\
A unit receives damage from an enemy unit and reaches 0 health. It disappears from the current game.
\item Units that fall below 1 HP will be deceased and no longer be able to be used in the current battle.
\item Player shall be able to select which weapon each unit uses to perform an attack. \\
Fit Criterion: \\
A Warrior selects Iron Sword to equip instead of the Bronze sword they already was using.
\item Player shall be able to select which weapon each unit uses to perform an attack.
\end{enumerate}
\subsubsection{Unit Structure}
\subsubsection{Unit Structure} \label{unitStructure}
\begin{enumerate}[resume]
\item All units shall have a corresponding Unit type class. \\
Fit Criterion: \\
All units are either a Warrior, Mage, or Archer.
\item All units shall have a corresponding Unit type class.
\item Classes shall include:
\item Classes shall include:
\begin{enumerate}
\item Warriors, which will be physical oriented units with a focus on Strength and Defense.
......@@ -357,8 +315,7 @@ The following contains the functional requirements of the project:
\item Mages, which will be a magical oriented unit with a focus on Magic and Resistance.
\end{enumerate}
Fit Criterion: \\
Warriors have higher attack and defense then Archers and Mage. Archers have higher skill and speed then Warriors and Mage. Mages have higher int and resistance then Warriors and Archer
*Refer to \ref{UnitType} for details on each class
\item The stats of the game shall include:
\begin{enumerate}
......@@ -369,12 +326,8 @@ The following contains the functional requirements of the project:
\item Skill stat will be used to calculate hit, miss, and critical rates.
\item Speed stat will be used to calculate if a unit can attack twice.
\end{enumerate}
Fit Criterion: \\
Each unit will have a specific number for Strength, Intelligence, Defense, resistance, Skill and speed.
\item All units will have a unique corresponding HP bar. \\
Fit Criterion: \\
A unit with half health will have a health bar that is half the width it was originally.
\item All units will have a unique corresponding HP bar.
\end{enumerate}
......@@ -385,10 +338,10 @@ The following contains the functional requirements of the project:
\subsection{Look and Feel Requirements}
\subsubsection{Appearance Requirements}
The menu page will consist of a nature-like background offering a soothing and melodic feel. The in game map will consist be a wilderness theme with rocks, trees and rocks as obstacles surrounding and in between the 2 sides. The characters to be controlled will be drawn and coloured in such a way that they do not blend into the background. The resolution of the game will be preset and unchangeable from a 960x640 resolution.
The menu page will consist of a ``nature-like'' background offering a soothing and melodic feel. The in-game map will be a wilderness theme with rocks, trees and rocks as obstacles.. The characters to be controlled will be drawn and coloured in such a way that they do not blend into the background. The resolution of the game will be preset and unchangeable from a 960x640 resolution.
\subsubsection{Style Requirements}
The style of the game will be a pixelated tactical RPG, similar to classics like Fire Emblem, and will have a nostalgic appeal to those who are familiar with this genre of old school RPGs.
The style of the game will be a pixelated tactical RPG, similar to classics like Fire Emblem, and will have a nostalgic appeal to those whom are familiar with this genre of old school RPGs.
\subsection{Usability and Humanity Requirements}
......@@ -422,15 +375,15 @@ The game shall be available for as long as the user has access to a Windows mach
The game shall run for as long as the machine is on, or until the user exits the game.
\subsubsection{Capacity Requirements}
The game shall be able to support gameplay for up to 2 players.
The game shall be able to support gameplay exactly 2 players.
\subsubsection{Longevity Requirements}
The game shall be playable for as long as Windows OS supports running executables.
The game shall be playable for as long as Windows OS supports running executable.
\subsection{Operational and Environmental Requirements}
\subsubsection{Expected Technological Environment}
The user shall be accessing and navigating the game from a computer running Windows, Mac, or Linux OS.
The user shall be able to access and navigate the game from a computer running Windows.
\subsubsection{Productization Requirements}
Before the product is playable, it must be deployed through Visual Studio 2015 and XNA Game Studio.
......@@ -446,7 +399,7 @@ The game should be ready for launch without need for further maintenance.
\subsection{Security Requirements}
\subsubsection{Access Requirements}
The game shall be made available to the general public through a free online download link hosted by a remote hosting site. The public shall be able to access the game given that they have previously acquired internet access and access to a machine capable of running the game.
The game shall be made available to the general public through both gitlab and github. The public shall be able to access the game given that they have previously acquired Internet access as well as access to a machine capable of running the game.
\subsubsection{Integrity Requirements}
The game shall not accept invalid user input, nor have the source code modified by any persons or apparatus who are not permitted to do so.
......@@ -519,16 +472,16 @@ There is no cost associated in the development of the product. The developers of
Readable instructions will be available to the player at the beginning of the game, and will carefully instruct the user on how to play Blaze Brigade.
\subsection{Waiting Room}
There are a few extra features that would increase the entertainment value of the game but have yet to be implemented. One major addition would be an AI that a player can face, instead of the game always requiring 2 players. Another would be another game mode called "Capture the Flag", where you would attempt to capture objective flags on the map, and bring it back to your base without that unit dying and losing the flag. Unit level increasing is also another feature that will be implemented in the future, as well as a larger variety of unit types. An additional feature to be implemented will be more weapons types as well as weapon animation during attacking. A further feature would be adding different tile weights, such as costing 2 movement to walk through a water tile. The last extra feature would be a playable tutorial upon starting the game replacing the screen of instructions on how to play.
There are a few extra features that would increase the entertainment value of the game but have yet to be implemented. One major addition would be an AI that a player can face, instead of the game always requiring 2 players. Another would be another game mode called ``Capture the Flag'', where you would attempt to capture objective flags on the map, and bring it back to your base without that unit dying and losing the flag. Unit level increasing is also another feature that will be implemented in the future, as well as a larger variety of unit types. An additional feature to be implemented will be more weapons types as well as weapon animation during attacking. A further feature would be adding different tile weights, such as costing 2 movement to walk through a water tile. The last extra feature would be a playable tutorial upon starting the game replacing the screen of instructions on how to play.
\subsection{Ideas for Solutions}
The path finding algorithm used for unit moving and attacking currently is BFS. However this would only work since we do not yet account for weighted tiles (costing more then 1 movement to go through a tile). This would turn it into a weighted graph, and we would need to instead switch to Dijkstra's algorithm for path finding.
\newpage
\section{Symbolic Parameters}
\section{Symbolic Parameters}
\subsection{Action Terminology}
\subsection{Action Terminology} \label{Actions}
\subsubsection{Moving}
Moving refers to selecting move from a selected unit, then clicking to one of the blue highlighted nodes to move the unit from its previous location to the location newly clicked.
......@@ -540,9 +493,11 @@ Equip weapon refers to selecting a different weapon from the Item drop down menu
Attack refers to selecting attack from the character drop down menu, and clicking on an enemy unit standing on a red highlighted node. The unit will then deal damage to the enemy unit based on damage calculation then be counterattacked by that same unit should it survive.
\subsubsection{Killing a unit}
Killing a unit refers to a unit getting attacked and having its health being reduced to under 0. That unit is then "killed" and no longer playable or seen in the current game.
Killing a unit refers to a unit getting attacked and having its health being reduced to under 0. That unit is then ``killed'' and no longer playable or seen in the current game.
\subsection{Unit Terminology}
\subsection{Unit Terminology} \label{UnitType}
For unit structure, refer to \ref{unitStructure} in functional requirements.
\subsubsection{Warrior}
Warriors are a frontline physical bruiser and tank. They can equip swords, move quickly, and attack units within adjacent range. Their high attack and defense allows them to kill archers and mage easily once in range, but can fall prey to mages due to their lower resistance.
......@@ -553,7 +508,8 @@ Archers are a backline ranged physical attacker. They can equip bows giving them
\subsubsection{Mage}
Mages are a backline ranged magical attacker. They can equip different spell tomes giving them an attack range of 1-2. Although their mobility is limited, their extremely dangerous magical attacks allows them to easily kill off warriors, despite struggling slightly against archers.
\subsection{Combat Terminology}
\subsection{Combat Terminology} \label{Combat}
For attacking with units, refer to \ref{Attacking} in functional requirements. \\ \\
For unit x = attacking unit, and unit y = defending unit where:
\begin{itemize}
\item unit.skill gets the unit's skill
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment