Our team enjoys rhythm games such as opsu!, and thought that it would be an interesting idea to create a rhythm game based around the Leap Motion. This led to the idea of a rhythm game based on a three by three grid in the air that could be simulated by a Leap Motion. Our name was inspired by the fact that the game and its UI felt very zen like.

What it does

Windsong is a rhythm game where you match the beat of the music by using a Leap Motion to tap the right squares on three by three grid.

How we built it

We wrote our game using Slick2D, a Java game library around OpenGL/OpenAL. We also created most of the graphics by ourselves in Inkscape and Paint Shop Pro 7.

Challenges we ran into

Our biggest challenge was properly mapping the Leap Motion sensors to the in-game grid and getting the sensors to properly recognize a "hit" without recording extraneous movement as hits. Besides that, the main challenge of the program was that it had to incorporate many different "parts" (song selection, the Leap Motion detection, sound and visual effects for the grid, timing-based scoring, a grading system, etc.) to make a fully functionally game, and all of these parts also had to be part of a cohesive UI.

Accomplishments that we're proud of

Our proudest accomplishment is that we managed to get the Leap Motion to track the grid accurately enough to make the grid tapping mechanics usable and enjoyable. We're also proud that we managed to design a cohesive and elegant UI.

What we learned

The Leap Motion, while usually able to report hand positions with decent accuracy, was at time difficult to work with due to its limited range (attempting to hit a square on the side often meant the user moved his/her hand out of the Leap Motion's "view"). Even when the Leap Motion did deliver accurate position / speed reports, it was tricky to translate those coordinates into "actions" (especially when hitting the corner squares), so most of our learning experience with this project dealt with working around the limitations of the hardware to get a good software interpretation of its results.

What's next for Windsong

Our primary goals for Windsong are better "hit detection" from the Leap Motion (the corners of the grid can still be iffy at times) and more advanced motion detection. For example, currently the rhythm game is based off of tapping grid squares, but using the Leap Motion we could implement more complicated motions, such as a sweep in a line or a "tap and hold" motion to make the game play more varied. We could also build interactive or competitive features into the game, such as online matches against other players.

Built With

Share this project: