Fond memories of the simplicity of the recorder brought us back to its elegant form. Game controllers of today are so generic and unexciting that we thought it would bring some fun back into the gaming world to bring a new controller to the scene, one that nobody has thought of since fourth grade music.
What it does
Our game, Gotta Go Real Fast, currently has two fully functioning levels with checkpoints and a finish line. The goal of each level is to direct the race car through the checkpoints and past the finish line in the quickest time possible. Obstacles are placed around the track for the car to avoid, as well as the large barrier separating the racers from the surfers in the ocean outside. Utilizing everyone's natural recorder talent, and slight change in pitch of notes, the car can be turned and maneuvered to race around the given track.
How we built it
The entirety of the game and pitch sensing are done in Unity 5, with the tracks designed in Adobe Illustrator.
Challenges we ran into
When we approached this project, we took a divide and conquer approach, with each component bringing about its own difficulties. The first hurdle was finding a way to record and analyze sound for Unity to use. We attempted to first use a separate C++ or Matlab script to take in and filter raw audio data. This proved difficult and unsuccessful. We then decided on using the default audio recording and processing in Unity. While difficult to use using C# unity scripts made our integration with the game itself easier. A more minor hurdle that we faced early on was deciding what type of game made sense to use with the recorder as a controller. We floated first-person shooters, fighting games, and platform games as potential ideas, but decided on a 2D racing game.
Accomplishments that we're proud of
The moment when the car first starting moving to the pitch of the recorder was like seeing a child take its first steps.
What we learned
Going into this project there was very little or long forgotten Unity experience in the team, so much of the project was getting a sense of how game development works in Unity. We learned the basic structure of games, how scripting interacts with objects, and generally how to assemble the multitude of parts into a functioning game. There was also a lot to learn about audio and audio processing, including fast fourier transforms, spectrographs, and filters.
What's next for Gotta Go Real Fast
If the development of this game was to continue, much more detail and attention could be placed on the tracks and levels for the game. Due to time constraints only two levels were created for the first iteration of Gotta Go Real Fast, but we believe that more intricate and challenging levels could be added. Another thought was for mini levels between the classic racing levels, adding more fun to the game and even possibly a plot. The project could also use more polishing if it were to move onto a more developed stage, including some user friendly features such as an instruction screen or tutorial on how to play the game. Many other improvements to the game could be added, one idea was to have a “compass” of sorts for the pitch of the recorder to indicate where the car would move, and allow more precise control from the user.