Use Cases

Use Case: Main Game
Scope: Game
Initiator: Player
Actors: main game loop, player, graphics engine

  1. Game begins - initiates the following:
  2. While the game is not in end state (player has strokes remaining and has not shot ball into hole) Use case: dt timestep
  3. End game - display win / loss screen
Use Case: dt Timestep
Scope: Game
Initiator: Game
Actors: main game loop, listeners, player, graphics engine

  1. Get user input - Ext 1.
  2. Update position / velocity / acceleration values for all affected entities
  3. Detect Collisions - update positions again for colliding items
  4. Update screen

Extension 1:
Arrow keys - Enable camera rotation mode
Left mouse button - Enable putter rotation mode
Right mouse button - Enable putt mode

Nonfunctional Requirements

  1. Reasonable framerate (target: 30 fps)
  2. Consistent performance on different computers (read: LAC computers)
  3. OpenGL graphics engine
  4. Documentation for user guide + design
  5. Responsive player controls