Number | Requirement | Description | Priority | State | Contributors |
---|---|---|---|---|---|
1 | Ability to control the game using eye tracking. |
|
Must Have | ✔ | Nayana & Farhan |
2 | Ability to navigate easily through the game. |
|
Must Have | ✔ | Nayana, Farhan & Guide |
3 | The Level Grid should allow a user to select a level to play. |
|
Must Have | ✔ | Nayana, Farhan & Guide |
4 | The Level Grid should show level completion data for completed levels. |
|
Must Have | ✔ | Nayana, Farhan & Guide |
5 | Semi-realistic water simulation within the game screen. |
|
Must Have | ✔ | Nayana & Farhan |
6 | Normal levels should have a dock of pipes. |
|
Must Have | ✔ | Nayana, Farhan & Guide |
7 | Grid in the game screen that can hold pipes, funnels and obstacles. |
|
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. |
|
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. |
|
Must Have | ✔ | Nayana, Farhan & Guide |
11 | Two different types of pipes. |
|
Must Have | ✔ | Farhan |
12 | Levels are generated from an XML file that specifies all the information about a level. |
|
Must Have | ✔ | Nayana & Farhan |
13 | Visual and auditory indicators of when a user selects a game object using gaze-input. |
|
Must Have | ✔ | Nayana, Farhan & Guide |
14 | A selection box to highlight when a pipe is selected. |
|
Must Have | ✔ | Farhan & Guide |
15 | The level completed screen displays the time taken to complete the level and the star level achieved. |
|
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. |
|
Must Have | ✔ | Nayana |
18 | The game should have an overarching storyline. |
|
Should Have | ✔ | Nayana |
19 | Messages should be stored in a separate XML file. |
|
Should Have | ✔ | Farhan |
20 | Buttons which cannot be selected are greyed out. |
|
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. |
|
Should Have | ✔ | Farhan |
22 | A star achievement system for completing levels. |
|
Should Have | ✔ | Nayana & Farhan |
23 | A visible timer in the game screen. |
|
Should Have | ✔ | Nayana, Farhan, Guide |
24 | A branch obstacle. |
|
Should Have | ✔ | Farhan |
25 | A funnel which allows users to temporarily store water in it. |
|
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. |
|
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. |
|
Should Have | ✔ | Nayana, Farhan & Guide |
29 | The user should have the ability to change the dwell time to suit their preferences. |
|
Should Have | ✔ | Farhan |
30 | The Settings Menu should contain all the user configurable settings for the game. |
|
Should Have | ✔ | Farhan & Guide |
31 | A Pause Menu that pauses the current level and allows the user to change game settings. |
|
Should Have | ✔ | Farhan & Guide |
32 | Longer dwell times for destructive actions. |
|
Should Have | ✔ | Farhan |
33 | Multiple, varied levels for users to play. |
|
Should Have | ✔ | Nayana & Farhan |
34 | The game should be thoroughly user tested, with both eye tracking and mouse interaction being tested. |
|
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. |
|
Could Have | ✔ | Nayana & Farhan |
37 | Pagination of messages and the level grid. | Could Have | ✔ | Farhan | |
38 | Custom game graphics throughout the game. |
|
Could Have | ✔ | Guide |
39 | Sound effects 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. |
|
Could Have | ✔ | Nayana & Guide |
42 | User preferences should be saved between game sessions. |
|
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. |
|
Could Have | ✔ | Farhan |
Key Functionalities (Must Have & Should Have): 100% completed
Optional Functionalities (Could Have): 100% completed
ID | Bug Description | Priority |
---|---|---|
No Known Bugs |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 |