Feasibility Analisys - amrouda50/Clash-Invasion GitHub Wiki
Software Technology
Spring 2022
Tower Defense Game
Submitted To: Submitted By:
Specification
Task
Implement a two-player turn based hotseat strategy game.
Short Description
The game is played on an n×m map. Both players have a castle which is already there (placed randomly but far apart) at the start of the game. The goal of the players is to destroy the enemy castle by training soldiers and at the same time protect their own castle by building towers. By placing the towers right, the enemy soldiers can be led into a labyrinth and thus forcing them to move between towers that attack them. The following figure shows an example of the game, where C denotes the castles , T the towers and O obstacles (e.g. mountains) that can't be passed through. Building is only possible in the surrounding 2 squares of the players' own buildings, but it is impossible in the 2 square vicinity of the enemy towers or castle.

Obstacles
At the beginning of the game obstacles (e.g. mountain, lake) have to be randomly placed on the game board. Make sure that the obstacles aren't placed in the close vicinity on the castles, because it would give an unfair advantage. The units are not allowed to step on obstacles.
Feasibility Analysis
Technical Feasibility
As this is a game and the team is free to choose the technology behind it, we collectively decided to use Java as the main language for the creation of the project. The main reason for this decision was the existing knowledge that all the team members have in the aforementioned language.
There might also be a need for database to keep track of all the scores of the users. For that reason, we will use MySQL for this purpose.
As all the team members have significant knowledge of the language and there is no cost associated with learning the skills, this project is technically feasible.
Resource and Time Feasibility
In the resources feasibility, we need few prerequisites to jumpstart the project.
-
Programming Individuals - These include all team members having the skills required to program along with individual programming devices as the work can not be completed alone from the lab given the hybrid education situation.
-
Version Control System - As all the members would be working from decentralized locations and have to show work weekly to the practice teacher, there is a need of a VCS to keep the log of all the changes in the system. In that case, GitLab has been chosen by the instructor as the medium used by the team.
As for the time, the instructors have set many specific milestones in different weeks which will be used by the team to track their goals as well. The duration of the semester is feasible to complete the project. Therefore, the project is feasible in terms of resources and timing.
Risk Feasibility
There are few risks associated with the project:
- Relatively large team
As the recommended team size was 3 to 4 members, there was extra work incurred in case the size increases from the recommended number. In our case, we are a team of 5 members. Therefore, there will be extra work that is obligatory with a 5 member team.
- Astraying from the deadlines
Requirements
Functional Requirements
- The game should begin with the grid-like map.
- The castles of each player are already available with random distances.
- There are obstacles already on the map in the shape of mountains.
- Both players will be awarded a fixed amount of gold that they can use to utilize. Therefore, the gold amount should be visible at the start of the game.
- This is a turn based game. On each turn, the player will get some options,
Non-functional Requirements
User Interface Plan
Working Menu System
Made by Amina