Skip to content
Snippets Groups Projects
Commit 80bce716 authored by Sida Wang's avatar Sida Wang :juggling_tone1:
Browse files

updates

parent 5194b12b
No related branches found
No related tags found
No related merge requests found
File added
No preview for this file type
......@@ -39,7 +39,7 @@
\toprule {\bf Date} & {\bf Version} & {\bf Notes}\\
\midrule
Jan 27 & 1.0 & Team information\\
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 tool box 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
additional information.
\subsection{References}
\begin{itemize}
\item \begin{verbatim}[1]Fogleman, “fogleman/Minecraft,”
GitHub, 16-Feb-2019. [Online]. Available:
https://github.com/fogleman/Minecraft. [Accessed:
10-Feb-2020].\end{verbatim}
\item \begin{verbatim}[2]”Video Games and the law: Copyright,
Trademark and Intellectual Property”, NewMediaRights, 2020. [Online].
Available: https://www.newmediarights.org/guide/legal/Video_Games_law_
Copyright_Trademark_Intellectual_Property. [Accessed: 06- Feb-
2020].\end{verbatim}
\end{itemize}
\subsection{Symbolic Parameters}
......
\contentsline {section}{\numberline {1}Project Drivers}{1}{section.1}%
\contentsline {subsection}{\numberline {1.1}The Purpose of the Project}{1}{subsection.1.1}%
\contentsline {subsubsection}{\numberline {1.1.1}The User Business or Background of the Project Effort}{1}{subsubsection.1.1.1}%
\contentsline {subsubsection}{\numberline {1.1.2}Goals of the Project}{1}{subsubsection.1.1.2}%
\contentsline {subsection}{\numberline {1.2}The Stakeholders}{1}{subsection.1.2}%
\contentsline {subsubsection}{\numberline {1.2.1}The Client}{1}{subsubsection.1.2.1}%
\contentsline {subsubsection}{\numberline {1.2.2}The Customers}{1}{subsubsection.1.2.2}%
\contentsline {subsubsection}{\numberline {1.2.3}Other Stakeholders}{2}{subsubsection.1.2.3}%
\contentsline {subsection}{\numberline {1.3}Mandated Constraints}{2}{subsection.1.3}%
\contentsline {subsubsection}{\numberline {1.3.1}Solution Constraints}{2}{subsubsection.1.3.1}%
\contentsline {subsubsection}{\numberline {1.3.2}Implementation Environment of the Current System}{2}{subsubsection.1.3.2}%
\contentsline {subsubsection}{\numberline {1.3.3}Partner or Collaborative Applications}{3}{subsubsection.1.3.3}%
\contentsline {subsubsection}{\numberline {1.3.4}Off-the-Shelf Software}{3}{subsubsection.1.3.4}%
\contentsline {subsubsection}{\numberline {1.3.5}Anticipated Workplace Environment}{3}{subsubsection.1.3.5}%
\contentsline {subsubsection}{\numberline {1.3.6}Schedule Constraints}{3}{subsubsection.1.3.6}%
\contentsline {subsubsection}{\numberline {1.3.7}Budget Constraints}{3}{subsubsection.1.3.7}%
\contentsline {subsection}{\numberline {1.4}Naming Conventions and Terminology}{3}{subsection.1.4}%
\contentsline {subsection}{\numberline {1.5}Relevant Facts and Assumptions}{4}{subsection.1.5}%
\contentsline {subsubsection}{\numberline {1.5.1}Facts}{4}{subsubsection.1.5.1}%
\contentsline {subsubsection}{\numberline {1.5.2}Assumptions}{4}{subsubsection.1.5.2}%
\contentsline {section}{\numberline {2}Functional Requirements}{5}{section.2}%
\contentsline {subsection}{\numberline {2.1}The Scope of the Work and the Product}{5}{subsection.2.1}%
\contentsline {subsubsection}{\numberline {2.1.1}The Context of the Work}{5}{subsubsection.2.1.1}%
\contentsline {subsubsection}{\numberline {2.1.2}Work Partitioning}{6}{subsubsection.2.1.2}%
\contentsline {subsubsection}{\numberline {2.1.3}Individual Product Use Cases}{6}{subsubsection.2.1.3}%
\contentsline {subsection}{\numberline {2.2}Functional Requirements}{6}{subsection.2.2}%
\contentsline {section}{\numberline {3}Non-functional Requirements}{9}{section.3}%
\contentsline {subsection}{\numberline {3.1}Look and Feel Requirements}{9}{subsection.3.1}%
\contentsline {subsubsection}{\numberline {3.1.1}Appearance Requirements}{9}{subsubsection.3.1.1}%
\contentsline {subsubsection}{\numberline {3.1.2}Style Requirements}{9}{subsubsection.3.1.2}%
\contentsline {subsection}{\numberline {3.2}Usability and Humanity Requirements}{9}{subsection.3.2}%
\contentsline {subsubsection}{\numberline {3.2.1}Ease of Use Requirements}{9}{subsubsection.3.2.1}%
\contentsline {subsubsection}{\numberline {3.2.2}Personalization and Internationalization Requirements}{9}{subsubsection.3.2.2}%
\contentsline {subsubsection}{\numberline {3.2.3}Learning Requirements}{9}{subsubsection.3.2.3}%
\contentsline {subsection}{\numberline {3.3}Performance Requirements}{10}{subsection.3.3}%
\contentsline {subsubsection}{\numberline {3.3.1}Speed and Latency Requirements}{10}{subsubsection.3.3.1}%
\contentsline {subsubsection}{\numberline {3.3.2}Precision or Accuracy Requirements}{10}{subsubsection.3.3.2}%
\contentsline {subsubsection}{\numberline {3.3.3}Reliability and Availability Requirements}{10}{subsubsection.3.3.3}%
\contentsline {subsection}{\numberline {3.4}Operational and Environmental Requirements}{10}{subsection.3.4}%
\contentsline {subsubsection}{\numberline {3.4.1}Requirements for Interfacing with Adjacent Systems}{10}{subsubsection.3.4.1}%
\contentsline {subsection}{\numberline {3.5}Maintainability and Support Requirements}{11}{subsection.3.5}%
\contentsline {subsubsection}{\numberline {3.5.1}Maintenance Requirements}{11}{subsubsection.3.5.1}%
\contentsline {subsubsection}{\numberline {3.5.2}Supportability Requirements}{11}{subsubsection.3.5.2}%
\contentsline {subsubsection}{\numberline {3.5.3}Adaptability Requirements}{11}{subsubsection.3.5.3}%
\contentsline {subsection}{\numberline {3.6}Security Requirements}{11}{subsection.3.6}%
\contentsline {subsubsection}{\numberline {3.6.1}Integrity Requirements}{11}{subsubsection.3.6.1}%
\contentsline {subsubsection}{\numberline {3.6.2}Privacy Requirements}{11}{subsubsection.3.6.2}%
\contentsline {subsection}{\numberline {3.7}Cultural Requirements}{11}{subsection.3.7}%
\contentsline {subsubsection}{\numberline {3.7.1}Cultural Requirements}{11}{subsubsection.3.7.1}%
\contentsline {subsubsection}{\numberline {3.7.2}Political Requirements}{12}{subsubsection.3.7.2}%
\contentsline {subsection}{\numberline {3.8}Legal Requirements}{12}{subsection.3.8}%
\contentsline {subsubsection}{\numberline {3.8.1}Compliance Requirements}{12}{subsubsection.3.8.1}%
\contentsline {subsection}{\numberline {3.9}Health and Safety Requirements}{12}{subsection.3.9}%
\contentsline {section}{\numberline {4}Project Issues}{12}{section.4}%
\contentsline {subsection}{\numberline {4.1}Open Issues}{12}{subsection.4.1}%
\contentsline {subsection}{\numberline {4.2}Off-the-Shelf Solutions}{12}{subsection.4.2}%
\contentsline {subsection}{\numberline {4.3}New Problems}{13}{subsection.4.3}%
\contentsline {subsection}{\numberline {4.4}Tasks}{13}{subsection.4.4}%
\contentsline {subsection}{\numberline {4.5}Migration to the New Product}{13}{subsection.4.5}%
\contentsline {subsection}{\numberline {4.6}Risks}{13}{subsection.4.6}%
\contentsline {subsection}{\numberline {4.7}Costs}{13}{subsection.4.7}%
\contentsline {subsection}{\numberline {4.8}User Documentation and Training}{13}{subsection.4.8}%
\contentsline {subsection}{\numberline {4.9}Waiting Room}{13}{subsection.4.9}%
\contentsline {subsection}{\numberline {4.10}Ideas for Solutions}{13}{subsection.4.10}%
\contentsline {section}{\numberline {5}Appendix}{14}{section.5}%
\contentsline {subsection}{\numberline {5.1}Symbolic Parameters}{14}{subsection.5.1}%
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