|
Requirements
-
The game's functional requirements listed, codified and described.
Table of Contents
Note that these requirements are given tier numbers. They are
such that satisfaction of all tier 1 requirements will produce
a minimally functioning game.
Gameplay Requirements
Requirements relating to the way the game is played, its
rules and its commands.
Gameplay Requirements
Tier |
ID |
Definition |
1 |
REQ_GAME_PAUSE |
The game must be able to be paused and unpaused. While one player is paused, all other clients are also paused. |
2 |
REQ_GAME_SOLDIERS |
Each player's base slowly produces soldiers which the server controls with AI. Soldiers dig in near the base and fire at enemy planes. |
TODO: Need to better define gameplay with a section on Rules and more formal requirements.
Map Requirements
Requirements relating to the map, its tiles, properties,
methods for creating and editing.
Map Requirements
Tier |
ID |
Definition |
1 |
REQ_MAP_TILED |
Maps are defined on grids and rendered with graphic tiles. |
1 |
REQ_MAP_TEXT |
Map layout (ASCII art) and settings (properties of each ASCII character) are defined in a text file. Note that all three common definitions of newlines must be supported: LF (UNIX), CR+LF (DOS/Windows), CR (Mac). |
1 |
REQ_MAP_PNG |
Map tiles can be edited using an image manipulation program which can edit PNG images. All graphics are simply stored as PNG images in a subdirectory. |
1 |
REQ_MAP_RUNWAYS |
Predefined maps include runways where the players are to begin. |
1 |
REQ_MAP_WRAP |
Map terrain can be wrapped. If this option is defined in the map settings file, the left most edge of the map as defined is adjacent to the right most edge. |
1 |
REQ_MAP_NOWRAP |
Map terrain can be unwrapped. If this option is defined in the map settings file then while playing, should a plane fly off the edge of the map, it will simply fly back onto it a second later at the same height with its direction reversed. |
2 |
REQ_MAP_DESTRUCTIBLE |
Map tiles can be destructible, such that they are destroyed by being bombed. This may be purely cosmetic in the case of ordinary ground, or a useful tactic in the case of bridges. |
2 |
REQ_MAP_INHERITANCE |
In the settings file, tiles may inherit their properties from an abstract set of properties and then override some values. |
3 |
REQ_MAP_RANDOM |
Random maps can be created to support any number of players from 2-8. They must look correct (e.g. no grass and snow tiles being mixed to cause obviously errornous appearance) and be reasonably fair to all players. Options for map generation may include how many players to support, whether to wrap or not, size, terrain type and bumpiness/hilliness. |
Physics Requirements
Requirements relating to the way the game models physics
and aerodynamics.
Physics Requirements
Tier |
ID |
Definition |
1 |
REQ_PHYS_MOTION_DOGFIGHT |
Plane motion is modelled on Dogfight. i.e. planes have only a speed and direction, do not speed up when they tilt down and do not stall when they tilt too far up. |
2 |
REQ_PHYS_MOTION_SOPWITH |
Planes accelerate and stall depending on a simple discrete model of angle and stress. |
Collision Detection Requirements
Requirements relating to the collision detection algorithm
used. This is significantly complex in an action game to
warrant its own section.
Collision Detection Requirements
Tier |
ID |
Definition |
1 |
REQ_COLL_NONE |
Game objects do not collide. |
2 |
REQ_COLL_CIRCULAR |
All game objects use circular collision detection. |
3 |
REQ_COLL_BITMASK |
Game objects use bitmask collision detection. |
4 |
REQ_COLL_SORT |
Sorted bounding box partitioning (may only work on nowrap maps). |
Weapons Requirements
Requirements relating to the game's handling of weapons,
their uses, limitations, power and range.
Weapons Requirements
Tier |
ID |
Definition |
1 |
REQ_WEAPONS_NONE |
Planes do not have weapons. |
2 |
REQ_WEAPONS_GUNS |
Planes have simple implementations of machine guns. Each bullet has its own movement vector when it is fired from a plane. They are unaffected by gravity. |
2 |
REQ_WEAPONS_BOMBS |
Planes have simple implementations of bombs. They are affected by gravity separately from the plane. |
Network Requirements
Requirements relating to the user-visible features of the
networking code including the ability to chat, pause, and
any requirements of the network due to visible game
mechanics.
Network Requirements
Tier |
ID |
Definition |
1 |
REQ_NET_XPILOT |
Protocol based on XPilot. The server runs in a separate process and talks to clients, remote or local, through TCP/IP sockets. Packets inform clients of each 'event' such as a bomb appearing, a bullet appearing, an enemy plane moving, etc. Each packet is preceeded by a unique ID number to identify itself to the recipient. See the XPilot source for more details. |
1 |
REQ_NET_SYNC |
Clients and servers must be syncronised so that one does not run more quickly or slowly than another. |
1 |
REQ_NET_CHAT |
Players must be able to send each other instantaneous text messages. |
1 |
REQ_NET_PAUSE |
If a player pauses the game, the other clients are paused also. They may unpause the game if they wish, although this would be discourteous if the pausing player is not at the keyboard. |
2 |
REQ_NET_EFFICIENT |
Dead-reckoning and other improvements if necessary (expand this requirement when more is known). |
AI Requirements
Requirements relating to computer players in the game and
intelligent or reasoned behaviour made by the client or
server programs.
AI Requirements
Tier |
ID |
Definition |
1 |
REQ_AI_HUMANSONLY |
No computer players. All players must be human. |
1 |
REQ_AI_DUMBSOLDIERS |
Soldiers trained at a player's base walk a limited random distance from the base, dig in and proceed to fire at any enemy soldiers or planes which come within a certain distance. Enemy soldiers have priority. |
2 |
REQ_AI_DUMBPLAYERS |
Simplistic AI: take off, fly at fixed altitude above ground towards enemy, track and fire guns at enemy planes if near, bomb enemy bases if near. |
Graphics Requirements
Requirements relating to graphics displayed to the players
by the client program and functional requirements of the
graphics such as team colours and special effects.
Graphics Requirements
Tier |
ID |
Definition |
1 |
REQ_GFX_PLACEHOLDER |
Arrows for planes, pixels for bullets, circles for bombs, coloured geometric shapes for terrain and scenery. |
2 |
REQ_GFX_OBJ_MINIMAL |
Graphics for common or important moving objects: planes (in all rotations), bullets (pixels might suffice), bombs. |
2 |
REQ_GFX_TEAMCOLOURS |
Objects owned by a player or team including planes and runways, should be clearly designated with a primary or secondary colour. Runways and other buildings may be coloured or have an appropriately coloured flag clearly flying. |
2 |
REQ_GFX_TERR_MINIMAL |
Basic set of graphics for terrain and scenery. |
3 |
REQ_GFX_OBJ_COMPLETE |
Complete set of graphics for all important game objects (including soldiers, turrets, landing shelters, runways, etc.). |
3 |
REQ_GFX_TERR_COMPLETE |
Complete set of terrain and scenery graphics supporting at least two types of terrain (e.g. grassy and snowy). |
4 |
REQ_GFX_FX |
Special effects such as explosions, muzzle flare, smoke trails and particle effects. |
Sound Requirements
Requirements relating to sound played by the client
programs.
Sound Requirements
Tier |
ID |
Definition |
1 |
REQ_SND_NONE |
No sound. |
2 |
REQ_SND_FREQUENT |
Sounds for plane engine, gun fire, cannon fire and bombs (falling and exploding). |
3 |
REQ_SND_INFREQUENT |
Sounds for more infrequent things like soldier voices and planes spinning or falling. |
4 |
REQ_SND_MUSIC |
Music, if suitable. |
Documentation Requirements
Requirements relating to writing and maintaining good
documentation.
Documentation Requirements
Tier |
ID |
Definition |
1 |
REQ_DOC_SPEC |
Design document outlining ideas, decisions and work plan (this!). |
1 |
REQ_DOC_STYLEGUIDE |
Code style guide. |
1 |
REQ_DOC_DOXYGEN |
Internal documentation using Doxygen. |
2 |
REQ_DOC_INTERNAL |
Internal documentation of each salient implemented feature of the code (game loop, networking code, physics, etc.), including diagrams and explanations where appropriate. |
3 |
REQ_DOC_EXTERNAL |
Game manual including installation instructions, introduction, screen layout, controls and setting up multiplayer games. |
Source Control Requirements
Requirements relating to maintaining the source code.
Source Control Requirements
Tier |
ID |
Definition |
1 |
REQ_SRC_NONE |
For demos and rudimentary code base. |
2 |
REQ_SRC_CVS |
SourceForge CVS repository. |
Platform Requirements
Cross-platform requirements.
Platform Requirements
Tier |
ID |
Definition |
1 |
REQ_PORT_WINLIN |
Windows and Linux |
2 |
REQ_PORT_SDL |
All supported by SDL. |
Feature Creep Requirements
These are funky features that may be implemented
after all the other tiers' requirements are satisfied.
They should never take precedence over the
numbered tiers. They have been listed here to avoid
feature creep by introducing them into the rest of the
specification. Feel free to add more neat ideas!
Feature Creep Requirements
Tier |
ID |
Definition |
FC |
REQ_WEAPONS_ECONOMY |
Introduce a game economy where players can outfit their planes with powerups and weapons. |
FC |
REQ_WEAPONS_RnD |
Allow a player's ground force to research and design new weapons over time at a rate equal to the number of scientists alive. |
FC |
REQ_WEAPONS_POWERUPS |
Drop super powerups such as force fields, homing missiles, scatterbombs, invisibility and decoy planes on parachutes. Drop them more often near poorly performing players to give them a better chance. |
|
|