Implementing our own motion detection would have been lightweight, portable and more accessible. Powering the solution using a typical webcam would have been more cost effective, and the end product could have been played on any device with a camera. From a programmatic point of view we would have more control over a custom implementation and we could have customised the gesture control to suit our needs.
The XBox Kinect powered solution would have been less portable and we weren’t sure whether we could connect the hardware to a browser based application. Having a fixed hardware dependency could have restricted the lifespan of the application and would have brought risk in that the application’s success would have been reliant on a third party device that if found not fit for purpose could not have been tweaked or improved.
We were concerned that though we favoured a custom solution in the long term, we didn’t have time to get it right and the POC work we’d completed had proven the detection to be unreliable and would require significant improvements to deliver the quality and playability we needed to deliver.
Our researcher knew from a previous project that Unity had a reliable SDK for working with XBox Kinect. The Kinect sensor was mature and reliable and using Unity made the 3D development more attainable within the given time frame.
At Antiblanks we pride ourselves on delivering high quality solutions for all of our clients. Our reputation is based greatly on the quality of our work driven by the adoption of enterprise delivery processes to produce well architected and well tested code. Out architectural approach and unit testing strategy on this project were key in producing a bug free application.
We combined our extensive and varied experience in web, mobile and Smart TV applications and games development to deliver a modern reliable solution.
Based on the reliability and testability of a single immutable state architecture and the success we’ve had with these patterns in our enterprise fintech projects, we opted to use Redux to structure our application. We couldn’t find anything as mature for Unity as the Redux library we’d used in our web projects, so we improved an open-source framework and ported our mature tried-and-tested reusable in-house ReactJS based web component framework comprising of pages, page frames, dialogs and popups to underpin our application and fast-track development.
Though player and play statistics exceeded expectations over the duration of the four day long conference and our application was very good at attracting the interest of passers-by when it was being played, the ready state while idle could have done more to attract new players. More audience research and play-testing in this area could likely have doubled the number of players.
We already greatly improved the third party Redux library to deliver such a reliable game, but we had to omit a few features due to time constraints. The addition of these features would improve the scalability of our framework and allow us to deliver the same reliability on larger builds.