As a gamer, the software should offer a certain level of challenge and/or variety, so that it feels rewarding to play.
As a gamer, the software must be simple to understand and easy to control, so that it is as pick-up and play as possible.
As a gamer, the software must be simple to set up.
Requirements analysis
Type of requirements:
Functional:
The user should be able to control a car able to move from left to right, and to shoot upward
The user should be able to fend off against an army of Avians comprised of at least 2 types, those being birds and bats. Each type of enemy features a unique movement and attack pattern:
Birds: move in predictable patterns (left-right sweeping, then descend - Space Invaders style) and occasionally attack the player car with projectiles. They come in waves, meaning that when all the birds on the screen are defeated, a new wave will appear
Bats: move left to right close to the car and try to home in on it and attack it with their sound waves to mess up the player’s movement
The user should be able to obtain from time to time power-ups from defeated enemies, that allow the player character to gain temporary boosts/advantages, like temporary invincibility and laser
The user should be able to understand easily the health of the player character and the enemies by just looking at the screen
The game is endless in nature, so it should end when:
The car loses all its health points
A bird reaches the player ship
Non-functional:
The game should feel smooth to play
The game should try to imitate graphically games of the late 70’s/early 80’s
The game should feature a high-score ladder
The game should feature a difficulty select, to allow the players to choose the level of challenge
The game should feature music and sound-effects
Glossary:
Player/Car: the character/vehicle controller by the final user during the game
Enemy/Avians: the characters trying to attack and defeat the player
Projectile: the attacks the players and the enemies can shoot to hit to each other
Power-Up: the items falling down from certain defeated enemies that when collected by the car allow it to gain new temporary abilities/advantages
Bird: the common type of enemy coming down from the top of the screen. They come in groups/enemy waves
Enemy Wave: group of birds fighting against the player. When a enemy wave is defeated, a new one is generated
Bat: another type of enemy that tries to compromise the movement abilities of the player with a special type of projectile, known as wave
Sound Wave: the bat’s unique projectile that compromises the player character’s movement abilities if the latter comes into contact with it
Acceptance Criteria for the requirements
F1: the requirement is an acceptance criterion in and of itself. A 2-Player mode could be considered as a further goal
F2: the enemies must be of at least 2 types, those being the bird and the bat as desribed in the glossary. More enemy types could be considered.
F3: the game must feature at least 2 Power-Ups, those being the invincibility (render the player invulnerable for a few seconds) and the laser (change the shot type of player to make it easier to defeat the Avians). More power-ups, like the double-shot/clone and/or a health replenisher might be implemented.
F4: the requirement is an acceptance criterion in and of itself.
F5: the requirement is an acceptance criterion in and of itself. If some kind of pause menu is implemented, then also through it the game could be interrupted
NF1: the game should feature a frequency of at least 30 FPS, better if reaches 60 FPS
NF2: if this can be achieved, it will be done
NF3: if score memorisation will be implemented, this feature will be added
NF4: if the concept of difficulty is implemented, it will be featured
NF5: if achieved, this will likely done through the use of free-to-use resources