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.

Copyright (c) 2002-2003, Greg McIntyre
SourceForge