Requirements Analysis
Jeston Uhl
- System Overview
- This project is a fast-paced first-person shooter. The game will be strictly multiplayer played over a network. The objective for each player will be to shoot and kill other players using various weapons and objects found throughout the playable maps. The rules will be very similar to other first-person shooters such as Halo. If we have time, the game will be complete with sound effects and possibly even other characters controlled by the computer.
- Application Domain
- As in the popular game Halo, when a player starts the game, he or she will have the choice to create a new party or join a friend's existing party. When the party is complete the game will be started.
- Tasks
- Creating party for others to join
- Actor: Game Player(s)
- Goal: To create a joinable party for other players to interact.
- Precondition: A player is ready to play a game, but no joinable party has been created.
- Related use case: Joining a previously made Party
- Steps
- Player opens the game.
- Player is asked to join or create a party.
- Player chooses to create a new party.
- Player is given the opportunity to enter game type, map, weapon layout, etc.
- The player can now wait for additional players to join or start the game if wanted number is reached.
- Finally, the chosen map is loaded and the game begins.
- Alternative: Party-leader leaves the party. If members already joined, party-leader is given to the player that has been in the party the longest.
- Joining an Existing Party
- Actor: Game Player(s)
- Goal: To join an existing party of players.
- Precondition: Player wants to play the game, and a desired party has been created.
- Related use case: Creating a Party
- Steps:
- Player opens the game.
- Player is asked to join or create a party.
- Player chooses to join existing party.
- Player is asked to select party.
- Player enters desired parameters for the party.
- Player is added to the desired party.
- The map is loaded and the game begins.
- Alternatives: User decides to leave party.
- Classes:
- Network Connection
- Party
- Character
- Object
- Two or more players will now battle one another. All players will start the game with the same weapon unless random weapons are assigned by the game type chosen. All players will have full shileds and health. Shields will automatically regenerate after time, health will remain reduced. Players will be given the opportunity to pickup different guns throughout the map in exchange for the weapon currently being held. All weapons will have to be reloaded as well as have limited ammo.
- Tasks
- Firing a Weapon
- Actor: Game Player(s)
- Goal: To fire a weapon
- Precondition: User has a weapon.
- Related use cases: Reloading a Weapon
- Steps:
- Press enter on the keyboard.
- System checks to see if the weapon has ammo. If the clip is empty but player has ammo, reload then fire.
- Alternatives: Player has no ammo, do nothing.
- Picking up Ammunition
- Actor: Game Player(s)
- Goal: To Pick up ammunition.
- Precondition: Player is standing on ammo.
- Related use cases: Picking up a Weapon, Reloading a Weapon
- Steps:
- Player stands on ammo.
- System checks to see if the ammo is for the weapon the player is currently holding. If it is, the ammo will be filled.
- Alternatives: Player is not standing on ammo, do nothing. Ammo is not compatible, do nothing. Player does not have space to hold ammo, do nothing.
- Picking up Weapon
- Actor: Game Player(s)
- Goal: to pick up a weapon
- Precondition: Player is standing on a weapon.
- Related use cases: Firing a Weapon, Reloading a Weapon
- Steps:
- Player stands on weapon and hits shift.
- Player picks up weapon and drops current weapon.
- Alternatives: User is not standing over weapon, do nothing.
- Reloading Weapon
- Actor: Game Player(s)
- Goal: to pick up a weapon
- Precondition: Player is standing on a weapon.
- Related use cases: Firing a Weapon
- Steps:
- Player presses R on the keyboard.
- System reloads weapon.
- Alternatives: Player is out of ammo, do nothing. Weapon's clip is full, do nothing.
- Classes:

- Weapon
- Character
- Controls
- Object
- This game will be made up of multiple maps, indoor and outdoor. They will have obstructions, movable objects, replacement weapons, as well as ammo placed throughout the map. Once a weapon or ammunition pack is picked up by the player, it will respawn at set intervals throughout the entire game.
- When two or more players are engaged in a battle, shots hit will take away varying amounts of health and/or shield. If , for example, player one shoots player two in the head while he shoots player one in the body, player two's health will be significantly lower than player one's health.
- Tasks
- Character Shoots Another Character
- Actor: Game Player(s)
- Goal: One player gets shot by another.
- Precondition: Two players are within the weapon's range of each other.
- Related use cases: Firing a Weapon, Player Dies
- Steps:
- Bullet shot at player player.
- System identifies if and where the bullet hits the player and lowers the shield and/or health accordingly.
- Player gets hurt and possibly dies.
- Player will respawn according to the party creator's specifictions.
- Alternatives: none
- Player Dies
- Actor: Game Player(s)
- Goal: One player reduces another's health to zero.
- Precondition: Chacter gets hurt by bullet or explosion and resulting damage decreases health to zero.
- Related use cases: Firing a Weapon, Character Shoots Another Character
- Steps:
- Player is hurt hurt by bullet or explosion and health is reduced to zero.
- Player dies and respawns a set amount of seconds later declared by the party creator before the game started.
- Alternatives: none
- Classes
- Character
- Object
- Weapon
- Party
- Additonal Sections
- Networking
- The networking will be performed by serverand client machines. The clients will send all information to the host machine, then it will send it to the rest of the clients. The server will also coordinate any communication throughout the game.
- Graphics
- Graphics will be a basic 3D concept depending on the skill level of the team.
- Control
- Controls will be as follows: Space or left mouse click is fire, arrow keys will control the player, aiming will be done by moving the mouse, R and right click will be reload, and X will exchange current weapon for the weapon that the user is standing over. If the weapons are the same, the ammo in the weapon will be automatically given to the player if it is not already full.
- Performance
- The performance should be overall enjoyable with few hickups.