Evaluation

Achievement Table

Key:
Normal Level
Maze Level
Number Requirement Description Priority State Contributors
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 Nayana & Farhan
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 Nayana, Farhan & Guide
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 Nayana, Farhan & Guide
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 Nayana, Farhan & Guide
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 Nayana & Farhan
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 Nayana, Farhan & Guide
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 Farhan
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 Farhan
9 Pipes cannot be selected, moved, rotated or deleted when water is running. Must Have Farhan
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 Nayana, Farhan & Guide
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 Farhan
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 Nayana & Farhan
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 Nayana, Farhan & Guide
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 Farhan & Guide
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 Nayana & Guide
16 The Message Unlocked screen should display the message unlocked by the completion of the level. Must Have Nayana, Farhan & Guide
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 Nayana
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 Nayana
19 Messages should be stored in a separate XML file.
  • The messages XML file should hold all the messages for each level.
Should Have Farhan
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 Farhan
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 Farhan
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 Nayana & Farhan
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 Nayana, Farhan, Guide
24 A branch obstacle.
  • A branch obstacle on a grid block should prevent water from passing through it.
Should Have Farhan
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 Farhan
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 Nayana & Farhan
27 Ability to also control the entire game with a mouse. Should Have Farhan
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 Nayana, Farhan & Guide
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 Farhan
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 Farhan & Guide
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 Farhan & Guide
32 Longer dwell times for destructive actions.
  • Destructive actions are actions such as exiting the game.
Should Have Farhan
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 Nayana & Farhan
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 Nayana, Farhan & Guide
35 Unit tests to ensure that the critical logical components of the game work as expected. Should Have Nayana & Farhan
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 Nayana & Farhan
37 Pagination of messages and the level grid. Could Have Farhan
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 Guide
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 Nayana & Guide
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 Guide
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 Nayana & Guide
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 Farhan
43 Total gameplay time should be displayed in the Settings Menu. Could Have Nayana
44 Efficiency improvements to reduce the CPU usage of the game. Could Have Nayana & Farhan
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 Farhan

Key Functionalities (Must Have & Should Have): 100% completed

Optional Functionalities (Could Have): 100% completed

Known Bug List

ID Bug Description Priority
No Known Bugs

Critical Evaluation of the Project

We have implemented 100% of all required and optional functionality for the game and have attempted to ensure that the game is a professional and releasable product that will provide a unique and engaging experience for individuals with severely disabling conditions. We have submitted the Eye Tracking 2D package to the Unity Asset Store and we are in the process of submitting the Of Mice and Messages game to the Windows Store - where it will be freely accessible to all users. We will also release all the code into the open source under an MIT licence so that others can build upon our work.

User Interface

We took great care in creating a user interface that followed best practices from eye tracking interaction research for example, we ensured that gaze targets were large and so easy to dwell on and we provided users with a choice of dwell times so that they could choose the one most appropriate for them. Our use of objects changing colour as dwell time increased followed by a visual and auditory confirmation of selection was designed to avoid the user uncertainty about whether a selection had been made inherent to dwell-time based activation. We also utilised extended destructive dwell times for actions such as closing the game, to reduce the chance of accidental selections of destructive actions.

We also tried to avoid a cluttered UI, especially within the game screen, by implementing a pause screen that allows the user to leave or restart the level or change the game's settings. The pause screen also allows users to take a break from playing the game.

To give the game a strong identity and to provide an enthralling experience for our users, we created a storyline to drive the game and and provide impetus for the users to complete each level. We also endeavoured to provide varied and challenging levels with features such as funnels, obstacles, timers and a star achievement system as well as providing two different level types for example, a normal level type where the user moves pipes from the dock to the grid as well as, a maze level where the user has to rotate pipes already placed on the grid.

We also attempted to ensure that the game looked like a professional and relatable product, with custom made graphics throughout that aimed to give the game an identity that fits with the theme and storyline of the game.

To improve our user interface and experience, we would have added additional visuals such as animations to add to the game experience. We could have also extended the storyline or given the user the option to choose their storyline.

Functionality

We built upon the Unity Tobii Eye Tracking SDK, which is designed for 3D games, to create Eye Tracking 2D, our own reusable eye tracking package which we have submitted to the Unity Asset Store to assist other developers in creating 2D eye tracking games.

We utilised dwell-time based activation to counteract the Midas Touch problem, and our eye tracking functionality allows for extended destructive dwell times and user adjustable dwell times.

Our in-game functionality includes two level types. The normal levels allow the user to move and rotate pipes from a dock while the maze levels have pipes that have already been placed on the grid with the user only being able to rotate each pipe. The levels are generated via an XML file, which enables fast and flexible level generation and avoids having a large number of scenes within the game - with only two scenes being used to generate every level.

The funnel allows users to store water in them for 1 minute and 30 seconds when they have too few pipes to make a direct line to the target mail pipe and obstacles block water flow passing through them.

A timer is then used to add a further challenging element to the game, with different times required to gain a gold or silver star for each level. A bronze star is awarded for completion of a level.

We also provide a host of other functionality for our users, for example the ability to change the background music or turn it off, the ability to turn sound effects on and off, the ability to see total play time as well as the ability to see a message library of all the messages that the user has unlocked so far.

The pause screen saves the user’s progress in the level and prevents the user from seeing or activating any component of the level while the level is paused. When the game is unpaused the user’s progress is restored.

To improve, we would add additional challenging elements such as new obstacles and different kinds of pipes and increase the number of levels in the game.

Stability

The game is stable, with all known bugs having been fixed. We have also conducted thorough user testing and created unit tests for the critical components of the game. To improve the stability of the game, we would carry out further testing.

Efficiency

We have made several efficiency improvements to the game and we have carried out benchmarking to assess the efficacy of each of these improvements. Our efficiency improvements have included using object pooling, disabling eye tracking when it is not required and removing expensive operations.

To make greater efficiency gains, we would have further optimised our use of eye tracking and in game elements such as the water simulation.

Compatibility

Our game is currently compatible with Windows operating system and Tobii eye trackers as we are using the Tobii SDK however, to improve the game further we would add additional compatibility with the the Windows Interaction Library to Eye Tracking 2D.

To be compatible with a greater number of screen sizes we would have improved our game to have an aspect ratio that changes depending on screen size instead of using a fixed aspect ratio.

Maintainability

We attempted to make the game easily maintainable, with modular components such as Game Manager and Eye Tracking 2D. We also used an XML file to specify and generate each level of the game, rather than creating multiple scenes, to allow for the fast creation and editing of levels.

To improve the maintainability of our project we would continue to modularise our code and create further unit tests so that we could continue to expand our code base whilst ensuring that current functionality is not broken.

Project Management

We held regular team meetings, with regular reporting of progress between team members and to the client. We discussed deliverables, implementation options and requirements collaboratively and followed a long term plan for the project, with milestones being completed on time.

To improve our project management further, we would have made better use of tools such as Trello and Teams to allocate work and used a tool similar to Jira to track issues and progress throughout the project.

Future Work

The game will be released onto the Windows Store and we aim to continue to support and improve the game and the Eye Tracking 2D Package. In terms of future work, we aim to add difficulty levels to the game for example, Beginner, Intermediate and Expert and add a mode where users can create their own levels. To further improve and expand on Eye Tracking 2D, we would like to integrate support for the Windows Gaze Integration library. In addition, we could continue to add new challenging levels, with more features and create new storylines for the user to follow.

Individual Contribution Table

Work Packages Nayana Farhan Guide
Project Partners Liaison 60% 20% 20%
Requirement Analysis 90% 10% 0%
Research 100% 0% 0%
UI Design 20% 20% 60%
Coding 25% 65% 10%
Testing 47.5% 47.5% 5%
Bi-Weekly Reports 100% 0% 0%
Report Website 85% 15% 0%
Video Editing 10% 70% 20%
Overall Contribution 37.5% 37.5% 25%
Main Role Project Partner Liaison, Developer, Report Writer Developer, Video Editor, Tester UI Designer, Developer, Tester