I enjoy rhythm games a lot, and I saw a previous student created a rhythm game. So I thought, why not try it with what we have learned in class.
The overall idea is a rhythm game that will use the Catmull-Rom spline curve, collision detection, the particle system, and vertex skinning. At the bottom of the screen, there will be hitboxes where “arrows” will come in from specific areas outside of the screen; collision detection will also be used here to determine if the incoming arrows are close enough to be hit. The arrows are going to follow spline curves into the hitboxes. When the arrow is hit successfully, particles will emit from the hitbox indicating the arrow has been hit successfully. Lastly, there will be a character that will be dancing in the background planning to be incorporated into the rhythm game itself.
This concept to drive the arrows and follow a specific path. The arrows will also rotate and be oriented correctly towards the end of the curve. As an addition, the arrows are rendered randomly, creating a "glitch" effect, to give it a unique feel of a rhythm game.
A character that would dance in the background while the game is running would make it feel more like a rhythm game, of course. The character will randomly swap between various dancing animations when an arrow is successfully hit, giving it an interactive feel.
Lastly, when the arrows are close enough to the hitbox (red circles), the player is able to hit the arrows with the appropriate keys (ASDF respectively). Although stated as collision detection, rhythm games have a timing threshold for players to hit notes on time, so that was the main goal. When an arrow is successfully hit, particles will emit that will indicate the player hit the arrow.
An additional dependency was needed to play sound while the program was running. The library used is "Winmm.lib", which is to connect to the Windows Multi-Media player. This also means the program may not be able to run on other operating systems. By using this library, it allows full control on the mp3 playing such as pause, resume, stop, etc. since rhythm games also have this capability.