Functional Requirements
| Requirement ID | Requirement Description | CRC Cards Involved | Implementation Details |
|---|---|---|---|
| UR_DISPLAY FR_RESIZE |
Displays on varying screen sizes | Main | FitViewport |
| UR_MAP FR_COLLISION FR_MAP_LIMIT |
University maze style map + collision system | GameScreen, Player | TiledMap with collision layers |
| UR_PLAYER_CONTROL FR_KEYBOARD_CONTROL FR_MOUSE_CONTROL |
Keyboard/mouse input control | Player, GameScreen | WASD/Arrow movement + item interaction and left click |
| UR_GAME_COMPLETION FR_WIN_LOSE FR_WIN_LOSE_SCREEN |
Win/lose game completion screens | GameScreen, WinScreen, GameOverScreen | 5-minute timer with win/lose screen + bus escape event |
| UR_PLAYER_ABILITIES FR_TORCH FR_KEYCARD FR_FOOD |
Player interactions with surroundings/items | Player, Collectable, RonCookeScreen, LangwithScreen | Torch lighting, keycard access, pizza speed boost |
| UR_CHALLENGE FR_GOOSE FR_HIDDEN_GOOSE_EVENT |
Challenging interactions/events | Goose, GameScreen | Goose steals torch, baby geese hidden event |
| UR_SYSTEM FR_OS |
Cross-platform compatibility | Main | LibGDX framework runs on Windows, Mac and Linux |
| UR_STYLE FR_VISUALS |
Top-down 2D university map | SpriteAnimations, All Screens | Pixel art style with character animations and university setting |
| UR_TIME_LIMIT FR_COUNTDOWN FR_PAUSE_COUNTDOWN |
Limited game duration | GameScreen, PauseScreen, Main | 5-minute countdown - pause during pause menu |
| UR_MENUS FR_MAIN_MENU FR_SETTINGS FR_PAUSE FR_LOCAL_SCORE |
Multiple menu screens | MainMenuScreen, CharacterSelectScreen, PauseScreen, InstrunctionsScreen | Main menu, character select, pause, and instruction screens |
| UR_UI FR_SCORE FR_ACTIVE_CHALLENGE FR_CLOCK |
Pleasant and understandable UI | GameScreen, All Menu Screens | HUD with score, timer, events and inventory |
| UR_ENEMY FR_E_PATROL |
Enemies (goose) that patrol map | Goose | Goose AI with pursuit/patrol behaviour |
| UR_POINTS FR_BONUS FR_INTERACTION_BONUS |
Points collection system | GameScreen, Collectable | Score based on timer and events. |
| UR_LEADERBOARD | View past scores | Not implemented | Not implemented |
Non-Functional Requirements
| Requirement ID | Description | CRC Cards Involved | Implementation |
|---|---|---|---|
| NFR_NAVIGATION | Map easily traversed | GameScreen, Player | Optimize map size + move speed |
| NFR_PLAYER_RESPONSE | Quick input response (<1ms) | Player, GameScreen | Direct input handling in game loop |
| NFR_GAME_END | Game finishes within set time | GameScreen, Main | 5-minute timer |