Software Requirements Document

for

Tank Tournament

version 1.0

 

 

 

Prepared by: Eduard Papa, Michael Bridges, Steve Eklund,

Volodymyr Nestoyanov, Yong Ji

 

 

 

Software Engineering Workshop I
Advisor: David E. Breen
Drexel University

 

February 20, 2006

 

 

 

 

 

Table of Contents 


1. Introduction

1.1 Purpose of the requirements document

1.2 Scope of the product

1.3 Definitions, acronyms and abbreviations

1.4 References

1.5 Overview of the remainder of the document

2. General Description

2.1. Product Perspective

2.2. Product Functions

2.3. User Characteristics

2.4. Documentation

3. Specific Requirements

3.1 Functional Requirements

3.1.1 Game Modes

3.1.1.1 Tournament

3.1.1.2 Sudden-Death

3.1.1.3 Single-Player Practice

3.1.2 Gameplay

3.1.2.1 Game Options

3.1.2.2 Movement

3.1.2.3 Turret Rotation

3.1.2.4 Firing

3.1.2.5 Health Replenishment

3.1.4 Graphics

3.1.4.1 Terrain

3.1.4.2 Terrain

3.1.4.3 Camera View

3.1.4.4 Map Design

3.1.5 Audio

3.1.6 Controls

3.1.7 Game Setup

3.1.8 User Interface

3.2 Non-Functional Requirements

3.2.1 System Hardware Requirements

3.2.2 System Software Requirements

3.2.3 Performance

3.2.4 Additional Quality Attributes

3.2.4.1 Usability

3.2.4.2 Portability

3.2.4.3 Reliability

3.2.5 Development

4. System Models

4.1 System Relationship Diagram

5. System Evolution

5.1 Four-Player Match

5.2 Network Play

5.3 Match Against Computer Player

5.4 Various Weapons and Support Items

5.5 Map editor

 

 

 

1. Introduction

Tank Tournament will be an arcade-style game where two players will duel each other in a rich 3D environment. The terrain will be made up of hills and valleys and will include areas of water, mud, trees, and other obstacles that will affect the gameplay and force the players to plan their moves carefully. Tank Tournament will aim to bring back the experience of playing classic tank games such as Armor Ambush but this time with three-dimensional graphics, better audio effects, and improved controls.

1.1 Purpose of the requirements document

The requirements document is the official statement of what is required of the development team, and it specifies functional, as well as non-functional requirements. This document can be used by game publishers, managers, engineers, and testers, to help them understand the user and system requirements that are expected in the final product and to use this document as a reference while working on the project.

1.2 Scope of the product

Tank Tournament aims to recreate the look and feel of classic arcade games into the modern PC platforms to take advantage of 3D graphics, better audio, improved controls, and an overall better gaming experience. Tank Tournament will attract gamers who want to take a break from playing modern life-like games, lay back, and challenge their friends in a tank duel.

The final product, complete within the specifications of this document, will deliver a game that will meet the expectations of the faculty at Drexel University for a team of undergraduate computer science students. If there is interest in continuing to work on Tank Tournament outside the academic environment, future versions of the product could have the potential to reach store shelves and be profitable.

1.3 Definitions, acronyms and abbreviations

2D – two-dimensional; a term used in computer graphics to refer to virtual space with two dimensions. The common interpretation is a plane with two axes: X – horizontal, Y – vertical.

3D – three-dimensional; a term used in computer graphics to refer to virtual space with three dimensions. The world is made up of three axes: X – horizontal, Y – vertical, Z – depth.

API – Application Program Interface. A set of routines provided in libraries that extends a language's functionality.

Application Installation Package – self-executable file that contains the required files to install and run the game. This package might include self-contained applications such as the Microsoft DirectX 9.0 runtime library.

Camp – In gaming it refers to avoiding face-to-face confrontations and playing a defensive game from the same location in the map.

DirectX – DirectX is a collection of API's for easily handling tasks related to game programming on Microsoft Windows.

FPS – frames per second. It is the measurement of how quickly an imaging device produces unique consecutive images called frames. Also known as framerate.

Gamepad – a game controller with a directional pad and other buttons.

GUI – Graphical User Interface.

Health pack – a common term in computer games that refers to an object that is picked up by the players to repair their machines.

Map – a common term in computer games used to refer to the setting (2D or 3D) where the action takes place. In Tank Tournament it refers to the 3D battlefield as a whole, including the terrain, the obstacles, the spawn bases, sound effects, and more.

Minimap
– a smaller and simplified graphical representation of the map used as a radar system that indicates the positions of the players and other important objects. In Tank Tournament, the minimap will show the positions of the tanks and the health packs.

Respawn
– the act of spawning after being killed or destroyed; (See spawn).

SDK
– software development kit. It is a set of programs that allows software developers to create products to run on a particular platform or to work with an API.

Spawn – the action of placing a player in a location on the map at the start of the match, or after being destroyed.

Spawn Base – another common term in computer games that refers to certain locations on the map where the players are placed at the start the game, or when they get destroyed. A map could have multiple spawn bases.

1.4 References

Armor Ambush
13 February 2006 <http://www.atariage.com/software_page.html?SoftwareID=821>

Microsoft DirectX
13 February 2006 <http://www.microsoft.com/windows/directx/default.aspx>

Microsoft Windows XP
13 February 2006 <http://www.microsoft.com/windowsxp/default.mspx>

Pressman, Roger. Software Engineering: A Practitioner’s Approach. New York, NY: McGraw Hill, 2005

Sommerville, Ian. Software Engineering (6th Edition). New York, NY: Addison Wesley, 2000

1.5 Overview of the remainder of the document

In the remainder of this document, functional and non-functional requirements will be specified in greater detail. Functional requirements include information about the different game modes, the gameplay, graphics, audio, controls, and also the user interface. Non-functional requirements specify limitations of the software, such as hardware and software requirements, installation, development, and performance.

2. General Description

This section provides general description about the final product, its functions, and the users.

2.1. Product Perspective

Tank Tournament will be a self-contained software product, developed for personal computers running Microsoft Windows XP operating system. The software will take advantage of the Windows XP API, including DirectX 9.0, which provides direct access to enhanced hardware features for graphics, audio, and controls.

2.2. Product Functions

The final product will allow the user to:

  • install/uninstall the game (including DirectX 9.0 if it is not already installed)
  • take advantage of DirectX 9.0 compatible gamepads
  • use default or custom hardware settings for graphics, audio, and controllers
  • use default or custom game rules and options
  • play the game in different game modes and with different maps

2.3. User Characteristics

The most frequent users of Tank Tournament will be the developers and testers. The most important users are Drexel University faculty and other computer science students who will test and evaluate the game. In the academic environment, the game could be used by other computer science students who are interested in game design, programming, and computer graphics. Tank Tournament could also attract many gamers outside the academic environment, but the primary users are the students and faculty of Drexel University.

2.4. Documentation

The final product will include a user manual that will explain all the steps necessary to install/uninstall, configure, and play the game. The project documentation will include documented source code, requirements document, design document, acceptance test plan, and integration test plan.

3. Specific Requirements


3.1 Functional Requirements

Functional requirements include information about the different game modes, the gameplay, graphics, audio, controls, and the user interface.

3.1.1 Game Modes

The game will have three different game modes: Tournament, Single-Player Practice, and Sudden-Death. Tournament and Single-Player Practice modes will be accessible from the main game menu screen while Sudden-Death mode is only activated when the round draws.

3.1.1.1 Tournament

In Tournament mode two players will control their tanks around the battlefield with the ultimate goal of destroying each other. By default, the match will end when a player wins three rounds, but they will be allowed to change this value in the Game Options.

When the tournament starts, the players will be prompted to the Map Selection screen where they can preview all available battlefields and select the one where they want to play (Figure 3.1.1.1).

Figure 3.1.1.1 - Basic layout of Map Selection screen

Once the battlefield is selected, the tanks will spawn in two opposite positions across the battlefield, selected randomly from a set of pairs of spawn bases. Spawn bases are always created in pairs by the map designer to guarantee that both tanks are placed a certain distance apart (Figure 3.1.1.2). For instance, if the game randomly places the first tank in base #2, the other tank is automatically placed in the other base #2.


Figure 3.1.1.1 - A diagram showing three pairs of spawn bases in the battlefield.

The round will end either when one tank is destroyed (i.e. has no health left), or when the round time runs out. In the case when the time runs out, the winner will be determined by the amount of remaining health. However, if both players have the same amount of health, the round will be a draw. A draw will be considered a win for both players unless it is the last round of the match for one of them, in which case the match will go to Sudden-Death mode.

3.1.1.2 Sudden-Death

Sudden-Death mode will determine the winner of a round or a match in the case of a draw. By default, this mode will be activated when the last round of the match for one of the players ends in a draw, but the players will have the option to activate Sudden-Death for all rounds that end in a draw.

Sudden-Death will be played on a specially designed battlefield, which will be smaller and will not contain any obstacles. Both tanks will be placed on the center of the map, back-to-back, ready for an intense battle.

Another unique feature of this mode is that the tanks will not have any health, and whoever makes a successful shot first will be declared the winner.

3.1.1.3 Single-Player Practice

This mode will be designed to improve the player's tank movement and shooting skills. When the mode starts, the player will be prompted to the Map Selection screen as described in the Tournament mode.

The player's goal will be to destroy stationary target tanks appearing in random places of the battlefield. The tanks will appear one at a time; the new one will appear only when the previous one is destroyed.

This mode will not have a time limit, so the player can practice for as long as desired. When the player quits, the results of the practice such as total time spent, time per each target, and shooting accuracy will be displayed.

3.1.2 Gameplay

This section describes the requirements of game options, movement, firing, health, and other factors that affect gameplay.

3.1.2.1 Game Options

The players can choose to set the following gameplay options or leave them at their default values. These in-game options should not be confused with the pre-game setup options, which include resolution selection and button setup.

The following options must be set before a match:

  • How many rounds must be won in order to win the entire match: 1, 2, ..., 10; default is 3
  • How long each round lasts in minutes: 3, 5, 10, 15, 20, Infinite; default is 3
  • Toggle Sudden-Death ON/OFF for every round that draws; default is OFF, only for last round

The following options can be set at any time:

  • Sound Effects volume: 1, 2, ..., 10; default is 5
  • Music volume: 1, 2, ..., 10; default is 5
  • Toggle Minimap ON/OFF; default is ON

The minimap will be a smaller and less detailed version of the actual battlefield. It will be located in the top right corner of the screen, and will display the positions of players’ tanks, as well as of any health packs present on the battlefield. It is explained in greater detail in section 3.1.4.2 of this document.

3.1.2.2 Movement

The tanks can move forward and backward, as well as rotate clockwise and counter-clockwise (Figure 3.1.2.2). The movement backwards will be limited to a lower speed. The exact speed of movement will be fine tuned during play testing by the design team. The turret can be rotated clockwise and counter-clockwise. The turret will rotate slower than the base (hull) of the tank, so that tanks can dodge and maneuver around shots when they find themselves in vulnerable positions.



Figure 3.1.2.2 - Drawing illustrating the movement of the tank.

 

3.1.2.3 Turret Rotation

The rotation of the Tank Turret is achieved through pressing and holding the controller keys bound to Rotate Turret Left and Rotate Turret Right functions (Figure 3.1.2.3). The direction of rotation is eastward (along the shorter semicircle from the turret’s current direction), while the Rotate Turret Right key is pressed and held, and westward (along the shorter semicircle from the turret’s current direction), while the Rotate Turret Left key is pressed and held. The turret stops rotating after the key is released.

Figure 3.1.2.3 – Direction of Turret rotation as determined by the Turret’s current direction and the controller key pressed (Rotate Turret Left or Rotate Turret Right)

 

3.1.2.4 Firing

Tanks will attack using a fire-and-forget method, meaning that after a shot leaves the cannon, it will be its own object on its own path, no longer able to be controlled by the player (Figure 3.1.2.4). The player will be able to change the tank's course of movement and still see the shot moving in its own independent direction.

Figure 3.1.2.4 - Drawings illustrating the fire-and-forget method that will be used by the tanks.

There will be a time delay between consecutive shots. This is to avoid what gamers refer to as "button smashing", where the player with the fastest fingers can let off more shots in less time, thus reducing the strategy component of the gameplay. The exact speed and distance of a shot will be fine tuned during play testing by the design team.

When a tank is hit, the base will rotate randomly either left or right by a small angle to simulate the disturbance of being hit. The exact amount of rotation will be fine tuned during play testing by the design team.

3.1.2.5 Health Replenishment

A health pack, used to restore the health of a tank, can come in one of two different sizes, small or large (Figure 3.1.2.5). A small health pack will negate one shot, and a large health pack will negate two shots.

Figure 3.1.2.5 - Symbols used to represent two health packs of different sizes. The smaller one negates one shot, and the larger one negates two shots.

A single health pack will spawn at random times in random locations. If it is not taken within a certain time, it will just respawn in another random location and random health size. This is done to increase the excitement of the gameplay, since players will have to race to retrieve a health pack before their opponent. A pack is spawned in a random location, so a player cannot camp in a single location to protect a health pack from their opponent

3.1.4 Graphics

This area of the document describes how the game will be displayed and what is expected to be seen in the finished product. All in-game graphics and hardware usage will be done through DirectX 9.0 interfaces.

3.1.4.1 Terrain

The main set piece for this game will be the battlefield which will be made up of hills of different heights, water ways, mud patches, and even roads; all ares are textured appropriately. Additional terrain pieces will include boulders and trees. The terrain will affect the tanks' movement and shots, so the players will need to use it to their advantage in order to win. The visual effects of the different areas of the terrain are explained in greater detail in the following paragraphs.

Normal terrain
Normal terrain might include desert, grass, or snow-covered terrain depending on theme of map. It will be of organic form but not beyond the play elevation.

Trees Regions
Tree regions will block visual contact with a tank if the player moves into the forest. However, when the player moves through a region of trees, the canopy of that region will shake to indicate the general position. This effect will stop when the player is not moving. When tank rounds move through the forest, there is a chance that they will explode. When this happens, the canopy of that region will shake and smoke temporarily.

Water/Mud/Sand
Water/Mud/Sand areas will be textured differently but functionally will be interpreted the same way. When moving through these areas, the tank will slow down, and the graphics will show splashing and sputtering around the tracks of the tank. Deep regions of water/mud/sand will have darker textures to show that the tanks cannot move into those areas.

Rock/Single Tree
These objects will not have any special effects applied to them, but they will block movement of the tanks.

Roads
Roads will be straight ways that allow the tanks to move at greater speeds. They will be textured appropriately to distinguish them from other terrain regions.

Bridges
Bridges will function the same way as roads but will be placed over water ways. These will be shown by a separate 3D model.

3.1.4.2 Tank Effects

There will be different effects as the tank fires, moves, and gets damaged (Figure 3.1.4.2).

Figure 3.1.4.2 - Tank Firing, moving, injured, nearly dead.

 

3.1.4.3 Camera View

The camera or point-of-view will be pointed down on the battlefield at an angle that will provide both players with clear view of their tanks and the surrounding area (Figure 3.1.4.3-1). The camera will zoom-in/out so that the users do not lose visual contact with their tanks, unless they are hidden behind an obstacle.



Figure 3.1.4.3-1 - An illustration of the simplified terrain showing the viewpoint of the camera above the battlefield


Included in this view is a minimap that will be a simplified 2D map of the 3D battlefield. Two symbols of different color will represent the locations of the two tanks in the battlefield (Figure 3.1.4.3-2). By looking at the minimap, the users will know their position even if they lose visual contact.


Figure 3.1.4.3-2 - A simplified view of the battlefield and its minimap representation.

3.1.4.4 Map Design

The map or battlefield design will be important to good gameplay. Even if the game is functional, the difference between good and bad map design can make the game either fun and exciting or boring and downright frustrating. Each map will have to take elevation into consideration as elevation will determine where players can move and how they will attack each other.

Although the terrain will appear natural, with low points and elevations, from the functional point of view it will be treated as a flat surface with obstacles that will block the movement of tanks and shots. Any parts of the terrain above a certain level will block movement and tank shots; anything below will block movement but not tank shots.

Figure 3.1.4.4 - A simplified side view of the terrain intersection. The horizontal red line shows the logical representation of a flat terrain. The vertical lines bound obstacles that will block movement, and, if above the flat-terrain level, will also block shots.

3.1.5 Audio

The game will use a simplified 3D-environmental sound model implemented with DirectX 9.0. All sounds will be heard relative to the position of the camera. Audio in the game will range from ambient sounds to weapon effects, to audio cues from the announcer. Here is a list of different types of sounds that will be used:

  • Tank Movement sounds
  • Tank Firing sounds
  • Explosive sounds
  • Menu sounds
  • Announcer cues
  • Background music

3.1.6 Controls

There will be a total of eight essential input controls per player. These inputs will have default bindings assigned, and the users will have the option to change the key bindings to match their preferences and the game controllers.

Input 1
Movement Up - MOVE tank FORWARD
Menu Up - Select UP in the in-game menu

Input 2
Movement Down - MOVE tank BACKWARD
Menu Down - Select DOWN in the in-game menu

Input 3
Movement Rotate Left - ROTATE tank LEFT
Menu Left - Select LEFT in the in-game menu

Input 4
Movement Rotate Right - ROTATE tank RIGHT
Menu Right - Select RIGHT in the in-game menu

Input 5
Turret Rotate Left - ROTATE turret LEFT

Input 6
Turret Rotate Right - ROTATE turret RIGHT

Input 7
Fire - FIRE player's tank while in game
Accept - Select a highlighted menu option in the in-game menu

Input 8
Menu - Brings up the in-game menu while in game
Close - Closes the in-game menu if hit while in the menu
Back - Backs out from your current sub-menu

By default, non-essential controls used to toggle different features of the game on and off will be bound to the keyboard. However, the user can bind non-essential controls to his/her own game controller, if he has spare buttons after binding all essential controls.

3.1.7 Game Setup

The user will be given the option to change only the screen resolution and the key bindings of the game controller. All other settings will be the default settings used by DirectX 9.0 for graphics, sound, and game controllers.

3.1.8 User Interface

The user interface should be easy to use and should follow the general structure shown in figure 3.1.8.1.

Figure 3.1.8.1 - The structure of the user interface for Tank Tournament

The Start and Setup windows can be controlled by using the mouse and/or the keyboard. Once the game enters full-screen mode, the users will interact with the game by pressing the keys that were bound in the Controls window. The controls are described in greater detail in section 3.1.6 of this document.

The in-game user interface should look similar to figure 3.1.8.2.

Figure 3.1.8.2 - In-game user interface for Tournament Mode.

 

3.2 Non-Functional Requirements

Non-functional requirements specify limitations of the software, such as hardware and software requirements, installation, development, and performance.

3.2.1 System Hardware Requirements

The application will run as expected only on a system which, at the very least, has the following hardware configuration:

  • CPU: Intel Pentium 3 800MHz or equivalent
  • RAM: 256 MB
  • Video: 16 MB graphics card
  • Sound: 16-bit sound card
  • Hard Disk: 500 MB of free space
  • CD-ROM drive: 8x
  • Input: keyboard, one or two gamepads

The graphics, sound, and input devices should all be DirectX 9.0 compatible.

3.2.2 System Software Requirements

The application will run as expected only on a system which has all of the following software applications installed:

  1. Windows XP operating system
  2. DirectX 9.0 Runtime Library (will be supplied with the Application Installation Package)
  3. The latest device drivers for the components listed in the System Hardware Requirements section

3.2.3 Performance

The usage of the system resources by the application will never exceed the following limits:

  • 100-150 MB of RAM
  • 500 MB of hard disk space

The application will render graphics on the monitor screen at the rate of at least 30 FPS, at the default screen resolution of 640x480 and the color depth of 16-bit.

Once launched, the application will continue to run without problems for unlimited amount of time, until the user terminates it.

3.2.4 Additional Quality Attributes

3.2.4.1 Usability

Once installed, the application will not require any additional or periodic maintenance. It will reside on the user’s system until uninstalled, at which point it will get removed in its entirety, with no data related to the application being retained on the user’s system.

3.2.4.2 Portability

It will be possible to install the application on as many systems as needed, provided that the Application Installation Package will be available and that all systems will meet the System Requirements. After uninstalling, all files and all registry entries created by the application will be removed.

3.2.4.3 Reliability

Once installed on a system that meets System Requirements, the application will remain functional for as long as the user does not change the hardware or software system settings, and does not alter the application installation files in any way, except for how it is described in the Functional Requirements section of this document.

If the application ceases to function, the only way to fix it will be to completely reinstall it while verifying that the system meets the System Requirements.

3.2.5 Development

The application will be written and compiled in both Microsoft Visual Studio 6.0 and Microsoft Visual Studio 2003, using Microsoft DirectX 9.0 SDK to implement graphics, sound, and controllers. The application will be developed in Microsoft Windows XP, the same operating system required to run it.

4. System Models

4.1 System Relationship Diagram


Figure 4.1
- System Relationship Diagram


5. System Evolution

The following are features that could be considered for future versions of Tank Tournament.

5.1 Four-Player Match

Although this game is originally designed as a two-player game, it can be extended to a four-player game, which is usually called "Free-For-All" mode. The only problem is that players must have extra game controllers to be able to play the game on a single computer.

5.2 Network Play

The problem described in the previous section can easily be resolved by supporting network play. This feature will enable multiple players to play the game together in a LAN or over the Internet.

5.3 Match Against Computer Player

The only single-player mode available in the current version of game is Single-Player Practice mode, which would be played mostly by the novice players. For advanced players, the battle against a computer-controlled opponent with different levels of experience would provide for a more challenging practice and greater excitement.

5.4 Various Weapons and Support Items

Various items can be used to make the game more interesting. There will be two types of items: Weapon and Support Items. While weapon items add different effect to the tank's shot, support items will provide unique functions such as temporary shield, faster movement, and invisibility.

5.5 Map editor

This is an external utility which will let the players create a custom map and store it in a map file, which then can be played in the game. It will have a list of terrains and objects on the side, and the player can simply drag and drop them on any location in the map.