Final MoSCoW List

As we neared the end of our project development, we reflected on the original MoSCoW project goals we established during the requirement-gathering stage. It was a moment to consider all the objectives we set out to achieve and to evaluate the progress made throughout the development process.

ID Description Priority State Contributors
1 Create an Intuitive User Interface for specific driving games, namely Rocket League and Forza. MUST Abdullah, Christy, Memoy
2 Provide options for user to choose Method of Control (i.e. steering and joystick) and bodypoints (i.e. hands and elbows) to use. MUST Abdullah
3 Complete documentation and user manuals. MUST Christy
4 Handle potential errors in our MFCs. MUST Memoy
5 Create a general driving UI that supports a range of games. SHOULD Abdullah
6 UIs for specific 2D side scroller and 3D action games, such as Sonic and Lego Avengers. SHOULD Abdullah, Christy, Memoy
7 Motion Input UI that does not obscure the screen during gamepla.y SHOULD Abdullah, Christy
8 Descriptive and appealing virtual buttons by integrating skins. SHOULD Christy
9 A general 2D Side Scroller UI that supports a range of such games (Sonic). COULD Memoy, Christy
10 Integrate speech and gestures (i.e. open mouth) to allow more options of triggering in-game controls. COULD Abdullah, Christy, Memoy
11 Implement bodypoint tracking, such as nose tracking to control the movement of the car or game character. COULD Abdullah
12 Implement lower bodypoint control options for users. COULD × /
13 Create a general 3D Action Games UI. COULD × /

Individual Contribution

Task Christy Cho Memoy Mishra Abdullah Saeed
Project Partners Liaison 25 25 50
Requirement Analysis 30 50 20
Research 25 50 25
UI Design 25 25 50
Coding 20 20 60
Testing 33 34 33
Report Website 42 46 12
Presentations, Development Blogs, Video Editing 50 25 25
Work on HCI 50 25 25
Overall Contribution 33.33 33.33 33.33
Main Roles Non-technical Administrator, Report Editor, Tester Website Report Editor, Researcher, Tester Lead Programmer, UI Designer, Project Partner Liaison

Critical Evaluation

Overall

We have successfully fulfilled the initial goals set forth, enabling users to play a variety of FPS, Action and Adventure Games using Motion Input, along with the added functionality of using the same MFC for some particular games (the general driving/side-scroller MFCs). Another significant accomplishment is our development of visual mode (bodypoints visualiser and ghost mode), permitting users to engage with games using their desired configurations. These achievements, along with our other objectives, have contributed to a more integrated and effective solution. However, there are minor challenges that remain and will guide our forthcoming efforts.

Functionality

We created game-specific MFCs for complex 3D games like Lego Avengers and Batman. We created a general driving MFC for driving games like Rocket League and Forza and a general side-scroller MFC for Sonic. Therefore, each of our MFCs have a particular function and each of these utilise JSON files to efficiently store and parse data.

Stability

Our UI uses the Visual C++ MFC Framework which can be used on most computers.

Efficiency

Our game-genre and type specific MFCs make each of them highly efficient. Each MFC also employs exception handling that handles errors and displays appropriate messages.

Compatibility

Since our MFC will be coupled with MotionInput and be made available on Microsoft Store and used on Windows PCs, our choice of using MFC is extremely beneficial. It is also compatible with old and new windows versions.

Maintainability

In the future, uers may download JSONs for newly supported games they would like to play from the Motion Input website and add them to the appropriate folder, after which that game will be available in the drop down menu in our General MFCs. The user may then play these games with Motion Input without any MFC software updates or code changes.

Future Works

Given the time constraints, there are many things we wanted to implement but did not get the chance to. Some of these things included new functionalities and optimisations that we feel would further complete our work and allow for future users to develop upon it more. Here are some of them that could be done in the future:

Enabling lower body parts as bodypoints.

Create unit tests and test MFC components in isolation using Google Test framework.

Enable real-time positioning of on-screen triggers so the user can customise them.