Requirements

Project Background & Goals

Our project aims to create an eye tracking game aimed at users with severely disabling conditions such as ALS or spinal cord injuries, with an emphasis on creating a novel and interactive experience that will help develop the user’s eye tracking capabilities. The game should be easy to use with an eye tracker and follow best practices for gaze interaction design.

Requirements Gathering

We gathered our requirements from a combination of our project brief and meetings with our project partners. We initially based our requirements on the project brief and refined these over the course of several calls where we discussed ideas and implementation strategies. We then refined these requirements through user testing throughout the game's development, consulting our clients at every stage.

Personas

Gary Fenwick
Gary Fenwick is 42 and has been diagnosed with severe ALS. He is bed-bound but, still retains good control over his eyes. He uses eye tracking applications on a regular basis to communicate with his family and friends and enjoys playing games but, is disappointed by the lack of choice in eye-tracking games.
  Sophie Wood
Sophie Wood is 29 and has a spinal cord injury which severely limits her movement. She is able to communicate verbally and uses eye tracking to control a computer and continue her work as a researcher. She enjoys playing games casually when she is bored.
  Susan Browne
Susan Browne is 16 and is currently studying for her GCSEs. She has moderate ALS and uses eye tracking to use a computer in order to study and socialise. She wants to develop her eye-tracking abilities and enjoys solving puzzles.

MoSCoW Requirement List

Key:
Normal Level
Maze Level
Number Requirement Description Priority
1 Ability to control the game using eye tracking.
  • The user should be able to control the entire game via eye tracking, with the exception of the 'I Consent' and 'I Do Not Consent' buttons on the eye tracking data privacy notice which must be selected using a mouse.
Must Have
2 Ability to navigate easily through the game.
  • The user should be able to access the Level Grid, the Settings Menu and the Message Library from the Main Menu, in addition to being able to exit the game.
  • The user should be able to access the tutorial at any time from the level grid.
  • The user should also be able to return to the Main Menu from the Level Grid, the Message Unlocked screen, the Pause Screen and the Message Library.
  • The Pause Menu should also allow the user to return to the Level Grid.
Must Have
3 The Level Grid should allow a user to select a level to play.
  • Selecting an unlocked level (level less than or equal to the current level) should load that level for the user to play.
  • Levels higher than the current level should be locked and greyed out.
  • The current level of the user (highest unlocked level) should be highlighted.
Must Have
4 The Level Grid should show level completion data for completed levels.
  • Completed levels should be shaded with a different colour to uncompleted levels in the level grid.
  • Each completed level should show the highest number of stars achieved for that level, out of all attempts.
Must Have
5 Semi-realistic water simulation within the game screen.
  • The water should generally follow the laws of gravity however, the game physics should also allow water to automatically flow between two adjacent pipes, so that water can flow vertically and horizontally.
  • The user should be able to make the water start flowing from the starting mail pipe by selecting the play button.
Must Have
6 Normal levels should have a dock of pipes.
  • The dock should give the user the ability to place a pipe from the dock onto the grid by selecting the pipe type and then the grid block that the pipe should be moved to.
  • The dock displays how many of each pipe type are available, with the number decrementing when a pipe of that pipe type is placed on the grid and incrementing when a pipe of that pipe type on the grid is deleted.
  • A user should not be able to place a pipe from the dock, on the grid when they have run out of pipes of that pipe type in the dock.
  • The number of pipes available for each pipe type should be extracted from the XML file defining the level.
Must Have
7 Grid in the game screen that can hold pipes, funnels and obstacles.
  • The grid is made of a number of grid blocks which should only hold one game object at a time.
Must Have
8 A level is completed when the message in a bottle sprite is carried by the water to the target mail pipe.
  • The water should contain a visible message in a bottle sprite, which is re-spawned from the starting mail pipe if it falls off the game screen.
  • Once the message in the bottle flows into the target mail pipe, the level is completed and the user is redirected to the Level Completed scene.
Must Have
9 Pipes cannot be selected, moved, rotated or deleted when water is running. Must Have
10 All levels should contain buttons to pause the game, start and stop the flow of water and rotate pipes. Only normal levels should have a button to delete pipes.
  • A rotate anticlockwise button should rotate a selected pipe on the grid 90 degrees clockwise.
  • A rotate clockwise button should rotate a selected pipe on the grid 90 degrees clockwise.
  • A delete button removes a selected pipe from the grid, returning it to the dock.
  • The pause button should bring up the pause screen.
Must Have
11 Two different types of pipes.
  • An I pipe type that allows water to be carried through it without changing direction.
  • An L pipe type that changes the direction of the water passing through it by 90 degrees.
Must Have
12 Levels are generated from an XML file that specifies all the information about a level.
  • The information for each level includes the number of each type of pipe available in each level, the position of the target pipe, the positions of obstacles, the positions of the obstacle pipes (the pipes used in the maze level), the positions of the funnels and the time limits to get a gold or silver star.
  • The XML file is also written to when levels are completed, storing the time taken to complete the level and the stars achieved.
Must Have
13 Visual and auditory indicators of when a user selects a game object using gaze-input.
  • The colour of buttons should turn darker and pipes should start to glow as the dwell time increases up to the point of selection.
  • When selection occurs, until the object is selected, either a visible flash should occur or a selection box should appear and an audible sound effect should also be heard when a game object is selected.
Must Have
14 A selection box to highlight when a pipe is selected.
  • The selection box should allow the user to easily see which pipe is selected. This is used regardless of whether the user is using gaze or mouse input.
Must Have
15 The level completed screen displays the time taken to complete the level and the star level achieved.
  • The screen should also contain a button that allows the user to move to the message unlocked screen.
Must Have
16 The Message Unlocked screen should display the message unlocked by the completion of the level. Must Have
17 The game's credits should be easily accessible.
  • The credits should attribute all contributions to the game for example, the sounds and fonts used.
Must Have
18 The game should have an overarching storyline.
  • This storyline should be told through messages unlocked after each level completion, to incentivise users to keep playing.
Should Have
19 Messages should be stored in a separate XML file.
  • The messages XML file should hold all the messages for each level.
Should Have
20 Buttons which cannot be selected are greyed out.
  • The delete and rotation buttons are greyed out when a pipe is not selected but, are available for selection if a pipe already on the grid is selected.
Should Have
21 Maze levels which involve a series of pipes being placed on the grid, with the user only being able to rotate these pipes to create a route to the target mail pipe.
  • These types of levels do not have a dock or a delete button as pipes cannot be removed or added to the grid.
Should Have
22 A star achievement system for completing levels.
  • Users can achieve either a gold, silver or bronze star for completing the level, depending on how long they take to complete the level.
  • The times required to obtain a silver or bronze star are set within the XML defining the level.
  • A user should always at least achieve a bronze star for completing the level, regardless of time taken.
Should Have
23 A visible timer in the game screen.
  • Should show the current time spent on the level.
  • A star on the level timer is used to indicate which star (gold, silver or bronze) the user will achieve if they complete the level immediately.
  • The star will change once the time to achieve that star has elapsed.
Should Have
24 A branch obstacle.
  • A branch obstacle on a grid block should prevent water from passing through it.
Should Have
25 A funnel which allows users to temporarily store water in it.
  • A funnel allows the user to store water in it for up to 1 minute and 30 seconds.
  • If this time elapses, any remaining water in the funnel begins to evaporate.
  • The funnel trap door can be opened (so stored water can be released) or closed by the user.
  • The user can move, rotate and delete pipes while water is stored in the funnel but, not while water is flowing from the start pipe.
Should Have
26 Privacy notification to provide information on how gaze data is used in the game and gain explicit consent for its use from the user.
  • A privacy notification appears the first time the game is opened, with details on how their gaze data will be used within the game.
  • The user must select 'I Consent' to play the game. Once the user has selected this option, the privacy notification will no longer appear when they restart the game.
  • If a user selects 'I Do Not Consent' the game closes and the privacy notice still appears if they restart the game.
Should Have
27 Ability to also control the entire game with a mouse. Should Have
28 An interactive tutorial to introduce the game's concepts and mechanics to the user.
  • The tutorial should explain the functionality of the elements of the game screen for example, the starting and target mail pipes.
  • The tutorial should also allow the user to practice game actions such as moving and rotating pipes.
Should Have
29 The user should have the ability to change the dwell time to suit their preferences.
  • The user should be able to choose between a slow, medium or fast dwell time for gaze selections.
Should Have
30 The Settings Menu should contain all the user configurable settings for the game.
  • Should allow the user to change their preferred dwell time.
  • Should enable users to toggle background music and sound effects on and off.
  • Should enable users to change the background music of the game.
Should Have
31 A Pause Menu that pauses the current level and allows the user to change game settings.
  • Pausing a level should stop the timer, prevent the game elements from being selected whilst the game is in pause mode and save the current state of the game.
  • The level should not be visible while the game is paused.
  • A 'Back to Game' button should allow the user to go back to their current game, with their previous state restored.
  • A restart button should allow the user to start the level again.
  • The user should be able to change the dwell time settings for the game, in addition to whether sound effects or background music are on or off from within the Pause Menu
Should Have
32 Longer dwell times for destructive actions.
  • Destructive actions are actions such as exiting the game.
Should Have
33 Multiple, varied levels for users to play.
  • These levels should vary in terms of their type (normal or maze), the kinds of obstacles used and their difficulty.
Should Have
34 The game should be thoroughly user tested, with both eye tracking and mouse interaction being tested.
  • This information should be used to refine and improve the user interface, the game mechanics and the game's features.
Should Have
35 Unit tests to ensure that the critical logical components of the game work as expected. Should Have
36 A Message Library allows the user to view all the messages they have unlocked.
  • The buttons to access the messages of levels that have not been completed should be locked and greyed out.
Could Have
37 Pagination of messages and the level grid. Could Have
38 Custom game graphics throughout the game.
  • Game graphics should provide an identity for the game and include a logo, backgrounds, buttons etc.
Could Have
39 Sound effects throughout the game.
  • Sound effects for water flowing, selecting a pipe, placing a pipe on the grid and moving it to other grid blocks, rotating a pipe and deleting a pipe.
  • There should also be a confirmation sound for any other button selections throughout the game.
Could Have
40 Ability to toggle the game's sounds and background music on and off, in addition to allowing the user to choose between different background music options. Could Have
41 Choice of background music for the game.
  • The user should be able to select their preferred background music option from a range of choices.
Could Have
42 User preferences should be saved between game sessions.
  • The preferences that should be saved are: dwell time, whether sound effects are on or off, whether background music is on or off and the choice of background music.
Could Have
43 Total gameplay time should be displayed in the Settings Menu. Could Have
44 Efficiency improvements to reduce the CPU usage of the game. Could Have
45 Create and publish a custom, reusable Eye Tracking 2D package.
  • The package should make integrating the Tobii Eye Tracking SDK into 2D games easier.
  • The package should be released into the Unity Asset Store with comments to document its use.
Could Have

Use Case Diagram

Use Case List

Number Use Case Description Main Flow Result
1 Return to Main Menu User can return to the Main Menu. 1. Select Return to Main Menu Button.
2. User is returned to the Main Menu.
Returns user to Main Menu
2 Open Settings Menu User can open the Settings Menu from the Main Menu. 1. User selects Settings button on Main Menu.
2. Settings Menu is opened.
Settings Menu is opened
3 Consent to Privacy Notification User consents to eye tracking data usage and so is able to play the game. 1. User selects 'I Consent' in privacy notification.
2. User can now play the game.
User can play the game and the consent notification will no longer pop up when the user reopens the game.
4 Does Not Consent to Privacy Notification User does not consent to eye tracking data usage and so the game is automatically closed. 1. User selects 'I Do Not Consent' in privacy notification.
2. Game closes.
Game closes and consent notification will reappear when the user reopens the game.
5 Open Message Library User opens a library of messages where they can read the messages they have unlocked. 1. User selects Message Library from Main Menu.
2. Message Library Opens
The Message Library opens, allowing the user to select a specific message to read.
6 Exit Game User exits the game. 1. User selects Exit button from Main Menu.
2. Game closes.
Exits game.
7 Read Selected Message User reads a selected message from the Message Library. Only messages which have been unlocked can be viewed. 1. User selects Message Library from Main Menu.
2. User selects an unlocked message.
3. User reads the message.
User reads selected message.
8 Adjust Dwell Time User adjusts dwell time to meet their preferences. 1. User opens the Settings Menu or Pause Screen
2. User selects one of the the slow, medium of fast dwell time buttons.
Dwell time is adjusted to meet the user's preferences and this preference is saved between sessions.
9 Change Background Music User changes the background music, choosing from a series of options. 1. User opens the Settings Menu
2. User selects the background music button to switch between the different options.
Background music is changed to the user's preferred option and this preference is saved between sessions.
10 Turn Background Music On/Off User turns background music on or off. 1. User opens the Settings Menu or Pause Screen.
2. User selects the background music on/off button to toggle the background music on or off.
Background music is either turned on or off, depending on the previous state of the button. This preference is saved between sessions.
11 Turn Sound Effects On/Off User turns sound effects on or off. 1. User opens the Settings Menu or Pause Screen.
2. User selects the sound effects on/off button to toggle the sound effects on or off.
Sound effects are either turned on or off and this preference is saved between sessions.
12 View Total Gameplay Time User can view the total time they have spent playing the game. 1. User opens the Settings Menu.
2. User views the total time they have spent playing the game.
User views their total gameplay time.
13 Choose Level from Level Grid User selects a level to play from all available levels. The user can only play previously completed levels or one level higher than their highest completed level. 1. User opens the Level Grid.
2. User chooses an available level (less than or equal to their current level).
User plays selected level.
14 Play Tutorial User plays through the game tutorial to learn about the game mechanics and concepts. 1. User opens the Level Grid.
2. User selects Tutorial button.
3. User plays through the Tutorial.
User plays through the Tutorial.
15 Start Level User starts their selected level. 1. User opens the Level Grid.
2. User selects an available level.
3. User plays selected level.
Users plays selected level.
16 Pause Level User pauses the game indefinitely while playing a level. 1. User starts a level.
2. User selects the pause button.
Game is paused and a Pause Menu is brought up.
17 Restart Level User restarts the level they are currently playing. 1. User starts a level.
2. User opens the pause screen.
3. User selects the Restart Level button.
Level is restarted.
18 Return to Game User returns to the level they are currently playing, with their progress restored. 1. User starts a level.
2. User opens the pause screen.
3. User selects the Return to Game button.
User returns to their current game, with their progress restored and the Pause Menu is closed.
19 Complete Level User completes the level. 1. User starts a level.
2. User directs the message in the bottle to the ending mail pipe.
3. Level is completed.
Level is completed.
20 User can read the unlocked message User reads the message unlocked by the level completion. 1. User completes a level.
2. User selects the Read Message button on the Game Completion screen.
3. User reads the unlocked message.
User reads the unlocked message.
21 Select Funnel User selects a funnel. 1. User selects a funnel, either by dwelling on it or clicking.
Funnel is selected.
22 Open Funnel User opens a funnel by selecting a funnel when it is currently closed. 1. Funnel is closed.
2. Funnel is selected.
3. Funnel is open.
Funnel is open.
23 Close Funnel User closes a funnel by selecting a funnel when it is currently closed. 1. Funnel is open.
2. Funnel is selected.
3. Funnel is closed.
Funnel is closed.
24 Move Pipe User moves a pipe by selecting it and then selecting the grid block the user wishes to move it to. Pipes can only be moved to empty grid blocks. 1. User selects movable pipe.
2. User selects an empty grid block to move the pipe to.
Pipe moves to the selected grid block.
25 Select Pipe User selects a pipe. 1. User selects a pipe, either by dwelling on it or clicking. Pipe is selected.
26 Delete Pipe User can select a deletable pipe on the grid and then select the delete button to return the pipe to the dock. 1. Select pipe.
2. Delete button is now available to select.
3. Select the delete button.
Pipe removed from grid and returned to the dock.
27 Rotate Pipe 90 Degrees Clockwise User can select a pipe and then select the rotate 90 degrees clockwise button to rotate the pipe. 1. Select pipe.
2. Rotation buttons are now available to select.
3. User selects the rotate 90 degrees clockwise button.
Selected pipe rotated clockwise by 90 degrees.
28 Rotate Pipe 90 Degrees Anti-Clockwise User can select a pipe and then select the rotate 90 degrees anticlockwise button to rotate the pipe. 1. Select pipe.
2. Rotation buttons are now available to select.
3. User selects the rotate 90 degrees anti-clockwise button.
Selected pipe rotated anti-clockwise by 90 degrees.
29 Start Flow of Water User can start the flow of water. 1. Water flow button is selected.
2. Water continues to flow until the water flow button is selected again.
Flow of water is started.
30 Stop Flow of Water User can stop the flow of water, if water is currently flowing. 1. Water flow button is selected while water is flowing.
2. Water stops flowing.
Water stops flowing.
31 Watch Credits User can watch the game's credits. 1. User selects Settings Menu.
2. User selects Credits button.
Credits play.