@@ -56,14 +56,14 @@ to the template, you should explicity state what modifications were made.
\subsection{The Purpose of the Project}
Almost everyone nowadays relies on a computer as a multipurpose tool for research, video streaming, gaming and many other tasks. With the emergence of fast computing, gaming has become a popular pastime activity and a source of entertainment for many. However, not everyone has a device powerful enough to support extensive game applications. A simple installation and memory-effecient application of the Snake game allows it to be accessible for gamers without the need for extensive hardware or a high-performance computer. Our team, VUA30, will be creating a desktop application for the well-known “Snake” game with new enhancements and features. This competitive and addictive game can allow the user to play at their own pace and challenge their own high score.
Almost everyone nowadays relies on a computer as a multipurpose tool for research, video streaming, gaming and many other tasks. With the emergence of fast computing, gaming has become a popular pastime activity and a source of entertainment for many. However, not everyone has a device powerful enough to support extensive game applications. A simple, memory-effecient application of the Snake game allows it to be accessible for gamers without the need for extensive hardware or a high-performance computer. Our team, VUA30, will be creating a desktop application for the well-known “Snake” game with new enhancements and features. This competitive and addictive game can allow the user to play at their own pace and challenge their own high score.
Buying a computing device with high storage and faster performance can be out of budget. Complicated software covers up all the storage and the user is bound to use these applications as opposed to downloading other software. The importance of the redevelopment of “The Snake” is to save computing device’s personal storage and allow the user to play a game 24/7 with strong performance, even offline. Creating a desktop version of the snake game can fit into the category of downloadable calssical games such as the solitaire suite. The recreation of this game will allow the user to enjoy the classical game anytime and anywhere as long as they have installed the application. Improving aspects such as graphics and custom speed will also make the game more interesting. We would like to add more features to the game to make it more customizable and help people enjoy the classical game in an exciting and new way.
\subsection{The Stakeholders}
Stakeholders involved will be contained within the gaming community, more specifically the desktop gaming community and casual PC owners who are
looking for a fun reliever for boredom or quick game to play.
looking for a fun reliever for boredom or quick game to play.This also includes members invested in the project which are mentioned in the subsesctions below.
\subsubsection{The Client}
...
...
@@ -72,19 +72,19 @@ could be a desktop gaming distribution service such as steam, google play or app
\subsubsection{The Customers}
The main users or customers are desktop gamers, older generation of game enthusiasts, and youth, teens. However, the client can be anyone with a PC and an interest in classical gaming or a sudden craving for playing the classical Snake game. Often times, these games are a quick fix to boredom for those who are casually browing their PC's, so the game will be designed to provide enough stimulus and excitmement for regular computer users, similar to the solitaire suite.
The main users or customers are desktop gamers, older generation of game enthusiasts, youth and teens. However, the client can be anyone with a PC and an interest in classical gaming or a sudden craving for playing the classical Snake game. Often times, these games are a quick fix to boredom for those who are casually browing their PC's, so the game will be designed to provide enough stimulus and excitmement for regular computer users, similar to the solitaire suite.
\subsubsection{Other Stakeholders}
Aside from the clients and customers, other stakeholder include 3rd party Desktop game distribution stores and open source project banks which may make use of this project for development purposes:
\begin{itemize}
\item 3rd party Desktop game distribution stores
\item Game Testers
\item Technology Experts [Part of Project Team]
\item Usability experts
\item Dr. Bokhari
\item Project Development Experts: This can include teaching assistants, the professor, experienced peers and so on
\item 3rd party desktop game distribution stores.
\item Game Testers.
\item Technology Experts [Part of Project Team].
\item Usability experts.
\item Dr. Bokhari.
\item Project Development Experts: This can include teaching assistants, the professor, experienced peers and so on.
\end{itemize}
...
...
@@ -93,12 +93,12 @@ Aside from the clients and customers, other stakeholder include 3rd party Deskto
Some constraints that apply to the project include the following:
\begin{itemize}
\item No project budget provided; Project cannot use costly API memberships or resources
\item Application should take less than 400MB of storage space to meet requirements
\item The project must be completed within a 4-month period
\item Limited resources in terms of domain experts, specifically in graphic design
\item Application will be developed for one OS due to time constraint
\item open source project must be translated to Python due to development language and scope
\item No project budget provided; Project cannot use costly API memberships or resources.
\item Application should take less than 400MB of storage space to meet requirements.
\item The project must be completed within a 4-month period.
\item Limited resources in terms of domain experts, specifically in graphic design.
\item Application will be developed for one OS due to time constraint.
\item open source project must be translated to Python due to development language and scope.
\end{itemize}
\subsection{Naming Conventions and Terminology}
...
...
@@ -109,40 +109,38 @@ used as of now:
\begin{itemize}
\item DDS: Digital Distribution Service such as play store, microsoft play, etc.
\item OS: Operating System
\item Python: The programming language used for application development
\item Pygame: Computer graphics Python library
\item Snake 2.o: The desktop application being developed in Python
\item The interface: The graphics developed using Pygame
\item The source game: The open source original Python snake game being used for this project
\item OS: Operating System.
\item Python: The programming language used for application development.
\item Pygame: Computer graphics Python library.
\item Snake 2.o: The desktop application being developed in Python.
\item The interface: The graphics developed using Pygame.
\item The source game: The open source original Python snake game being used for this project.
\end{itemize}
\subsection{Relevant Facts and Assumptions}
Some factors that might affect the outcome of the product are listed as follows:
\begin{itemize}
\item Digital Distribution services contribution will be necessary for the public release of the game
\item Contribution of the development team will affect the outcome of the product
\item Feedback from game testers
\item Availability of resources from pygame library to replicate front-end design in HTML,CSS and JS
\item Time remaining once initial objectives and goals are met. This could affect which additional functionality is added
\item DDS contribution will be necessary for the public release of the game.
\item Contribution of the development team will affect the outcome of the product.
\item Feedback from game testers.
\item Availability of resources from pygame library to replicate front-end design in HTML,CSS and JS.
\item Time remaining once initial objectives and goals are met. This could affect which additional functionality is added.
\end{itemize}
Some Assumptions that are made pertain to the intended operational environment and anything effecting the product:
There are also assumptions that pertain to the intended operational environment and anything affecting the product:
\begin{itemize}
\item Pygame library offers enough functionality to recreate the web app graphics in Python
\item The user is using Windows for game execution otherwise they must compile the source code to run the application
\item The application will not be an exact replica of the source game. Added functionality and a change of graphics is expected
\item The game application will prioritize the completion of the snake game as the central attraction
\item Pygame library offers enough functionality to recreate the web app graphics in Python.
\item The user is using Windows for game execution otherwise they must compile the source code to run the application.
\item The application will not be an exact replica of the source game. Added functionality and a change of graphics is expected.
\item The game application will prioritize the completion of the snake game as the central attraction.
\end{itemize}
Some user characteristics will affect the final deisgn and written requirements:
\begin{itemize}
\item Users expect the game to be responsive and timely due to the nature of wanting quick stimulus
\item Users expect the game to be responsive and timely due to the nature of wanting quick stimulus .
\item The game should have an attractive user inteface due to the nature of the users expectations. It is mainly used for entertainment and should
have a smooth user-interface
have a smooth user-interface.
\end{itemize}
\section{Functional Requirements}
...
...
@@ -261,22 +259,22 @@ issues that should be considered for every engineering project.
\subsection{Open Issues}
Below is a list of open issues pertaining to the project scope:
\begin{itemize}
\item Investigating and understanding the capabilities of the Pygame library is yet to be completed
\item Integrating additional features is not decided on as of yet. It is dependant on time constraints
\item snake-game multiplayer mode is an open issue on the open source project which we may or may not choose to implement as time permits
\item Investigating and understanding the capabilities of the Pygame library is yet to be completed.
\item Integrating additional features is not decided on as of yet. It is dependant on time constraints.
\item snake-game multiplayer mode is an open issue on the open source project which we may or may not choose to implement as time permits.
\end{itemize}
\subsection{Off-the-Shelf Solutions}
Although there are available solutions on developing such a game, the project team is aiming to enhance the game by producing a desktop version with
added functionality.
Ready-made simple implementations of the projects are available and can be used as reference but otherwise, enhanced features will have to be created from scratch (light/ dark theme, custom player settings, high scores and so on)
Ready-made simple implementations of the projects are available and can be used as reference but otherwise, enhanced features will have to be created from scratch (light/ dark theme, custom player settings, high scores and so on).
\subsection{New Problems}
\subsubsection{Effects on the Current Environment}
The Microsoft Store contains the "250k snake" app for windows, an implementation of teh old-school snake game. Aside from this application, other applications that appear when searching "snake" or "snake game" do not reflect the classical snake game. By developing the snake game as a desktop app, we will be able to provide game shoppers with more options to pick from.
The Microsoft Store contains the "250k snake" app for windows, an implementation of the old-school snake game. Aside from this application, other applications that appear when searching "snake" or "snake game" do not reflect the classical snake game. By developing the snake game as a desktop app, we will be able to provide game shoppers with more options to pick from.
\subsubsection{Effects on the Installed Systems}
...
...
@@ -284,11 +282,11 @@ The existance of the 250k snake will make it difficult to push the project team'
\subsection{Tasks}
An article on linkedIn by Sumit Jain summarizes the steps involved in the game development process [ ~\cite{devArticle} ]. In his article, he outline 6 maine steps to the game development cycle: Idea \& Story, Conceptualize \& Design, Technical Analysis, Development, Testing, Deployment. Considering the project scope and the redevelopment of the snake game, the main three steps involved in the developement cycle are the following:
An article on linkedIn by Sumit Jain summarizes the steps involved in the game development process [ ~\cite{devArticle} ]. In his article, he outlines 6 main steps to the game development cycle: Idea \& Story, Conceptualize \& Design, Technical Analysis, Development, Testing, Deployment. Considering the project scope and the redevelopment of the snake game, the main three steps involved in the developement cycle are the following:
\begin{itemize}
\item Technical Analysis: Use reverse engineering to understand how the game was originally built and analyze the main modules/ framework used to develop the game.
\item Development: Using Python and Pygame to develop the source code for the game; Analysis from the previous step will be necessary to break down the developement process.
\item Testing: Test using unittest in python and principles of white bo and black box testing. In further developments, this would also include intergation testing with the user interface and the collection of modules created for the application.
\item Testing: Test using unittest in python and principles of white box and black box testing. In further developments, this would also include intergation testing with the user interface and the collection of modules created for the application.
\end{itemize}
Project members should expect the development cycle to resemble the previously mentioned framework. Once the cycle has been iterated until completion of Snake 2.o, the team will move on to the deployment stage, considering options for making the game available on a DDS such as the Microsoft Store.
...
...
@@ -297,9 +295,9 @@ Project members should expect the development cycle to resemble the previously m
Snake 2.o will be require the following conversion tasks:
\begin{itemize}
\item Converting JS,HTML and CSS graphics and animations to Pygame graphics
\item Comverting the source project into modularized step-based tasks
\item Converting from JS,HTML and CSS source code to Python source code
\item Converting JS,HTML and CSS graphics and animations to Pygame graphics.
\item Comverting the source project into modularized step-based tasks.
\item Converting from JS,HTML and CSS source code to Python source code.
\end{itemize}
The source project will be run with Snake 2.o for performance comparison and visual feedback on the accuracy of the redevelopment as well as the enhance features that were added to snake 2.o.
...
...
@@ -313,7 +311,7 @@ In the case that more risks are perceived in the future, the project team will t
\item If the development is taking place 1 week prior to the project deadline, an early warning will be issued and the group must decide to continue or dismiss the development.
\item If the development is currently taking place with 2 weeks left until the project deadline and less than 50\% of the development is in place, it will be dismissed.
\item If the main project is missing any component (testing, code modularization, documentation, commenting, etc.) no development will proceed until the main requirements (minimum requirements) are met.
\item If any of the main project components are deemed to have lower quality, a warning is issued and the team members must discuss wether to continue with further development or improving the existing product.
\item If any of the main project components are deemed to have lower quality, a warning is issued and the team members must discuss whether to continue with further development or improving the existing product.