Version: 2.0 |
CS 4500, University of Utah
|
This is the Software Design Specification for Epicurity’s
Tower Defense game. This document will outline the software design and
specification of our Tower Defense Game in addition to system architecture, and
software requirements as agreed upon by the customer and the project team.
AS – Action Script
TD – Tower Defense
Desktop TD - http://www.handdrawngames.com/DesktopTD/game.asp
Vector TD - http://www.candystand.com/play.do?id=18047
Blizzard Entertainment - http://www.blizzard.com/
This document will contain specifications of the design of our software. It is a high level explanation of how the game will function. This document will also serve to explain the users interaction with the application.
2.1 Overview of modules / components
Components:
· Game-play window – contains a side bar with buttons to chose towers and short descriptions of the towers, a side bar across the top of the web browser displaying points, life totals, time until next wave, and resources, and the main viewing window where towers will be placed.
· Menus – Menus for selecting game-play options
· Scoreboard – Displays high scores
· Game-play Logic – Stores game state, controls target AI, tower AI, submitting scores.
Subsystems:
· Path-finding AI – the intelligence behind path decisions
· Collision Detection – used by path-finding AI to determine if a shortest path is blocked
The game-play logic stores all the information that will be displayed by the game-play window and scoreboard. The game-play window and menus will send commands to the game-play logic.

· Hardcore Gamer – To cater to users with this persona we will provide keyboard shortcuts that speed up game play. We want to hold their interest so they keep playing.
· Casual Gamers – The GUI should be intuitive so and simple so that people who do not game that much can play easily. We want to hook them like cocaine.
|
The unique name for the component and the location of the component in the system. |
|
|
Type |
A module, a subprogram, a data file, a control procedure, a class, etc |
|
Purpose |
Function and performance requirements implemented by the design components, including derived requirements. Derived requirements are not explicitly stated in the SRS, but are implied or adjunct to formally stated SDS requirements. |
|
Dependencies |
How the component's function and performance relate to other components. How this component is used by other components. The other components that use this component. Interaction details such as timing, interaction conditions (such as order of execution and data sharing), and responsibility for creation, duplication, use, storage, and elimination of components. |
|
Interfaces |
Detailed descriptions of all external and internal interfaces as well as of any mechanisms for communicating through messages, parameters, or common data areas. All error messages and error codes should be identified. All screen formats, interactive messages, and other user interface components (originally defined in the SRS) should be given here. |
|
Data |
For the data internal to the component, describes the representation method, semantics, and format. This information will probably be recorded in the data dictionary. |
|
Identification |
Game-play window |
|
Type |
Module |
|
Purpose |
Visually display the game. The inputs are keyboard shortcuts and mouse clicks and the output is a visual representation of the game state |
|
Dependencies |
Depends on the game-play logic which provides the information that is displayed |
|
Interfaces |
Contains a side bar with buttons to chose towers and short descriptions of the towers, a side bar across the top of the web browser displaying points, life totals, time until next wave, and resources, and the main viewing window where towers will be placed. |
|
Data |
Buttons and tower and target graphics |
|
Identification |
Menus |
|
Type |
Module |
|
Purpose |
Display game options and allow the user to make decisions, and to submit scores |
|
Dependencies |
Game play options menu s displayed before the game starts. Submitting scores requires final game state but is optional. |
|
Interfaces |
It has buttons and covers the screen. It communicates with the game-play logic via function calls. |
|
Data |
Buttons |
|
Identification |
Scoreboard |
|
Type |
Module |
|
Purpose |
Record and display scores |
|
Dependencies |
Depends on the game-play logic and menus to provide scores and call the scoreboard |
|
Interfaces |
It is an ordered list of scores. It communicates with the game-play logic via function calls. |
|
Data |
We will store the scores in a database. |
|
Identification |
Game-play logic |
|
Type |
Module |
|
Purpose |
Stores the game state and handles all of the game-play, such as enemy AI, and handling input from the user |
|
Dependencies |
It depends on the game-play window and menus for user input. |
|
Interfaces |
It is not visible to the user. It interfaces with the game-play window and menus via function calls and data sharing. |
|
Data |
Its data will be stored in variables and possibly some data structures. |
We are starting from scratch and not reusing (currently).
We chose flash instead of Java or C++ because it is portable and easy for people to use; it doesn’t require most people to download and install any software on their computers.