Evaluation

Functionality

We have delivered quite soundly on the functionality we set out to create, but as always, we can find room for improvement. All the main functional requirements were completed, which included marker tracking and the game levels and objects, but the marker tracking could have been more accurate. Also, the number of levels and objects could have been higher, which would display the features in a higher variety of ways, but this would also take a high amount of development time, so it is not necessarily a direction we would have pursued if we went back in time – it just serves as a useful future path of development for this project.

Performance

We have tried to monitor the performance of our project – including the game and the marker tracking library as a separate entity – to ensure that we do not cause nausea for our players, as that is a concern for any VR/AR application. The performance we have measured was mostly satisfactory, but may worsen when used with a larger number of objects. Overall, we feel that the performance was addressed adequately.

User interface and user experience

This aspect could have used many improvements, as we have seen users having trouble with our system. The best way to continue this work in the future would have been to provide alternative ways of interacting with the menu – with voice commands, for example – starting the game, and so on. Gaze and gestures were sometimes unreliable and this would provide users with more options.

Maintainability/Extensibility

Our marker tracking library is highly extensible in both incorporation (other developers including it in their projects) and further development as documentation is provided and the code is extensively commented. Our game is also extensible – new levels and game objects can be created relatively quickly utilising standard Unity techniques. Expanding upon the code may be more difficult – documentation for it is self-contained within some parts of the code, which is not ideal. Also, we ran into some issues with the prefabs in Unity (essentially game object prototypes, which generate objects according to a set pattern), where some of them are broken (nested prefabs are a problem in Unity), which impacts the extensibility of our levels.

Testing

Our standard of testing was average, and we have briefly looked into automated integration testing in Unity (with Unity Test Tools), but did not pursue it as it would require a significant rewriting of the code base, and also would probably employ simulated user input, which is not ideal in integration tests. We did, however, perform extensive manual testing for the game, marker tracking library and the various modes of input for the HoloLens. We also provided the game to other people to play and provide feedback as part of our User Evaluation Testing. Finally, we performed performance testing, which we mentioned above (under performance). We regret not diving deeper into automated testing, but the specifics of our project did not make this an easy task – we would have most likely chosen the same process if we did this project anew.

Project Management

One of our weak points, our project management could have been improved, as we often did not have a direction to work towards. We employed a fairly relaxed agile sprint methodology, but did not keep track of our velocity, so we fell behind in some parts of the project. Stricter requirements and deadline keeping could have helped us – but it is hard to evaluate how differently would the project have turned out.

Future work

As mentioned above, the most likely future directions would be more game objects and levels, along with an improvement in the marker tracking accuracy, but it is possible that this aspect is close to exhaustion (the resolution of the camera is fixed and we already do apply several filters over the tracked data). Objects to explore would include objects that adapt to the user’s environment (there is a sketch of a pipe object, which was supposed to have this function in the project files), and objects placed automatically in parts of the room (scripts to place objects on the floor and on the ceiling are in the project) – possibly constructing a bridge between two raised platforms.

Lets Get In Touch!

Feel free to get in touch if you have any questions

Contact Us