Fed 9& 1.1 &Edited Functional Requirements and Non-functional Requirements\\
Date 2& 1.1 &Notes\\
\bottomrule
\end{tabularx}
\end{table}
...
...
@@ -87,12 +87,12 @@ The project should be designed and developed conforming with the following const
\begin{itemize}
\item The processor of the hardware system where the product is to be installed must be capable to run a simple 3D game.
\item The product is developed using Python, so the development environment must have Python installed.
\item The executable file of the product will be independent from Python, which means the OS that runs the game will not necessarily have Python installed.
\item The executable file of the product will be independent of Python, which means the OS that runs the game will not necessarily have Python installed.
\end{itemize}
\subsubsection{Partner or Collaborative Applications}
\begin{itemize}
\item The GUI of the game will be generated by Pyglet. Therefore, the development environment will requires Pyglet package installed.
\item The executable file will be generated by Pyinstaller. Hence, the development environment will requires Pyinstaller package installed too.
\item The GUI of the game will be generated by Pyglet. Therefore, the development environment will require Pyglet package installed.
\item The executable file will be generated by Pyinstaller. Hence, the development environment will require Pyinstaller package installed too.
\end{itemize}
\subsubsection{Off-the-Shelf Software}
\begin{itemize}
...
...
@@ -111,10 +111,10 @@ The project should be designed and developed conforming with the following const
\item N/A
\end{itemize}
\subsection{Naming Conventions and Terminology}
The naming conventions and terminology section will aid readers from different background to clearly understand the content of this document. The nameing conventions and terminologies used in this document are listed below:
The naming conventions and terminology section will aid readers from different backgrounds to clearly understand the content of this document. The naming conventions and terminologies used in this document are listed below:
\begin{itemize}
\item\textbf{OS:} Operating System
\item\textbf{GUI:} Graphical User Interface, which allows user to interact and visualize the program by graphics instead of text
\item\textbf{GUI:} Graphical User Interface, which allows the user to interact and visualize the program by graphics instead of text
\item\textbf{PC Gamers:} The individuals who play games either on a desktop or on a laptop
\item\textbf{Sandbox Games:} A type of games that allows player to create, modify, and destroy the environment
\item\textbf{Python:} The programming language that is used for the development of this project
...
...
@@ -136,15 +136,15 @@ The naming conventions and terminology section will aid readers from different b
\subsubsection{Assumptions}
\begin{itemize}
\item To compile the source code in terminal, Python 3.7 and Pyglet package will be required to be installed on the OS.
\item To compile the source code in the terminal, Python 3.7 and Pyglet package will be required to be installed on the OS.
\item To open the game by clicking the executable file icon, no specific software is required to be installed.
\item The executable file generated by Pyinstaller will keep all the features from the compiled application.
\item The Pyglet library will provide sufficient functionalities for the reimplementation.
\item\textbf{User Characteristics:}
\item The user is capable to play 3D video games with no dizziness.
\item The user is passion with 3D video games.
\item The user has a PC that can running a simple 3D game.
\item The user has knowledge of Python compilation and OS operations in the case of running the program in terminal.
\item The user is passionate about 3D video games.
\item The user has a PC that can run a simple 3D game.
\item The user has knowledge of Python compilation and OS operations in the case of running the program in the terminal.
\end{itemize}
...
...
@@ -177,7 +177,7 @@ GUI updates(out) & The system modifies the game state and updates the GUI\\\hlin
\end{tabularx}
\end{center}
\subsubsection{Individual Product Use Cases}
Since the game has Nonlinear Gameplay Style and different players may have different ideas, it is not possible to determine all use cases from the user actions. The main use case of the player is to controll the character and explore the game world.
Since the game has Nonlinear Gameplay Style and different players may have different ideas, it is not possible to determine all use cases from the user actions. The main use case of the player is to control the character and explore the game world.
\subsection{Functional Requirements}
\begin{itemize}
\item\textbf{FR1:} The software game shall start(open the GUI)when the player clicks on the icon of the game.
...
...
@@ -199,10 +199,10 @@ Since the game has Nonlinear Gameplay Style and different players may have diffe
\item\textbf{FR9:} The GUI shall show the outline of a block when the crosshair is pointing to the block.
\item\textbf{FR10:} The software game shall remove a block when the player moves the mouse to point the crosshair to the block and left-clicks on it.
\item\textbf{FR11:} The software game shall place a new block next to or on the top of an existing block when the player moves the mouse to point the crosshair to the existing block and right-clicks on it.
\item\textbf{FR11.1:} The type of the block to be built shall be changed to brick type when the player presses "1" on the keyboard.
\item\textbf{FR11.2:} The type of the block to be built shall be changed to grass type when the player presses "2" on the keyboard.
\item\textbf{FR11.2:} The type of the block to be built shall be changed to sand type when the player presses "3" on the keyboard.
\item\textbf{FR12:} The software game shall release the mouse movement from the GUI(stop the character direction changing) when the player presses "esc" on the keyboard.
\item\textbf{FR11.1:} The type of the block to be built shall be changed to the brick type when the player presses "1" on the keyboard.
\item\textbf{FR11.2:} The type of the block to be built shall be changed to the grass type when the player presses "2" on the keyboard.
\item\textbf{FR11.2:} The type of the block to be built shall be changed to the sand type when the player presses "3" on the keyboard.
\item\textbf{FR12:} The software game shall release the mouse movement from the GUI(stop the character direction changing) when the player presses "ESC" on the keyboard.
\item\textbf{FR13:} The software game shall quit(close the GUI) when the player clicks on the close button("X") on the GUI.
\item\textbf{FR14:} The software game shall play the background music when the game starts.
\item\textbf{FR15:} The software game shall play the effect sound when a block is being added or removed.
...
...
@@ -300,12 +300,12 @@ Since the game has Nonlinear Gameplay Style and different players may have diffe
\subsubsection{Compliance Requirements}
\begin{itemize}
\item\textbf{NFR14:} The product shall not violate the Digital Millennium Copyright Act[1].\\
\textbf{Fit Criterion:} A survey of legal expert asking for standard meeting and the result is meeting.
\textbf{Fit Criterion:} A survey of a legal expert asking for standard meeting and the result is meeting.
\end{itemize}
\subsection{Health and Safety Requirements}
\begin{itemize}
\item\textbf{NFR15:} The product shall not generate any mental or physical threat to the safety of the players.\\
\textbf{Fit Criterion:} A survey of safety domain expert asking for standard meeting and the result is meeting.
\textbf{Fit Criterion:} A survey of a safety domain expert asking for meeting standard and the result is meeting.
\end{itemize}
\section{Project Issues}
...
...
@@ -313,7 +313,7 @@ Since the game has Nonlinear Gameplay Style and different players may have diffe
\subsection{Open Issues}
Our investigation into whether Pyglet is the best fit GUI library for the design of this game product is still an open issue.
\subsection{Off-the-Shelf Solutions}
The original program designed and developed by Folgleman[2] will be considered as the candidate component for the development of this software game. Online open-sourced Minecraft textures and sounds will be considered as source elements to create graphics and sounds of the game.
The original program designed and developed by Folgleman[2] will be considered as the candidate component for the development of this software game. Online open-source Minecraft textures and sounds will be considered as source elements to create graphics and sounds of the game.
\subsection{New Problems}
One potential problem of this software game could be that the player feels it is too similar to the well-known Minecraft game released by Microsoft. Another problem is that the further development for game features extension could be difficult due to the limitation of Pyglet.
\subsection{Tasks}
...
...
@@ -323,11 +323,11 @@ N/A
\subsection{Risks}
\subsection{Costs}
Since all the source(including textures, sounds, original program) and tools(including Python, Pyglet, Pyinstaller) are open-sourced, there will be no monetary cost for the development. The time cost of the development will be 3 months.
Since all the sources(including textures, sounds, original program) and tools(including Python, Pyglet, Pyinstaller) are open-source, there will be no monetary cost for the development. The time cost of the development will be 3 months.
\subsection{User Documentation and Training}
A user beginning manual will be added to the game window as a guideline of how to play the game. The beginning manual will include all the basic operations that the player could do. With the help of the manual, the player will be able to discover the game.
\subsection{Waiting Room}
The toolbox feature is still under consideration.
The toolbox feature is still under consideration.
\subsection{Ideas for Solutions}
N/A
\bibliographystyle{plainnat}
...
...
@@ -338,8 +338,19 @@ N/A
\section{Appendix}
This section has been added to the Volere template. This is where you can place