Towards the end of the course on Computer Graphics, we(a group of three students) took up this project that was to be evaluated as a part of the coursework. But instead of sticking to the field of graphics solely, we decided to bring in a bit of human interaction, to make it more fun.
We came up with an ambitious project of creating a kinect based game. Although game development is an extremely time-taking, and complicted process, we did not want to back down. We felt it was worth a go to attemp the implementation of something unexpectable in such a short period of time.
Keeping it simple, we landed on the idea of making a game called spherio, inspired from our favorite mario. But here, its just a sphere which moves forward. But the motion of the sphere is not controlled by arrow keys. Instead its the user who makes a running gesture to set the sphere in motion.
The image below shows an example of the ball jumping over an obstacle.
The interaction mapping was kept direct and simple. The up and down movement of the user's palms/arms are taken as an indication of the ball's velocity. The faster the user moves his/her hands in a running like motion, the more is the velocity of the sphere. We set an upper limit for the velocity of the ball so that it does not just fly off of the screen. To make the virtual sphere jump vertically, the user also has to jump. Basically the vertical position of the user's head is noted for mapping the jump. We set a threshold value. If the user's head's y-coordinate goes up by that threshold value, it is registered as a jump.
The Game: The game had a very simple objectve of moving the ball through a certain distance. To make it a bit more interesting, we included obstacles on the road. The sphere has to avoid them by jumping. The obstacle one touched resulted in disqualification. For collision detection, we modelled the ostacles as simple discs, and looked for an intersection with the ball.
Ideation: There was a constant urge to bring some creativity in a very short period of time. Before settling on the final idea of "Spherio" we initially wanted to create a game of boxing, where two users fight virtually through real gestures. The next idea was to handle virtual objects, through real movements. But with our time constraints, we decided against both ideas adn moved to something a little less ambitious.
Work Division: The work was divided into four main tasks
Scope of Improvement: The final product had various scopes of improvement. For example, the direct mapping was not very effective and the jump detection and obstacle collision detection was not very smooth. But overall it was quite a satisfying feeling to have attempted something beyond the scope of the coursework, and without prior knowledge of game engine development.