This game is a side-scrolling platformer with one action: jump! You choose music from your hard drive, and the level is generated for the length of the song. The mood and pace of the music dictates the difficulty (more beats per minute means more obstacles to jump over).
After a summer learning theories on making games (a short-lived attempt at creating one is visible at my smuggler game blog), I jumped at the opportunity when my uni started allowing our course to pitch a game, rather than an animation, for the group project. I spent 2 weeks getting together a music visualisation demo in Qt and C++, and with a few hasty concept designs, my pitch was enough to get the idea chosen!
We were randomly assigned group members – I had no idea who any of my three team members were (of course I know them well now)! Everyone had clearly defined roles, mine being the leader and game/ engine programmer. After some research into engines, without much of an idea of what the game would be, just that it was a side-scrolling platformer that reacted in some way to music that the user could choose, I decided on the Angel 2D Engine https://code.google.com/p/angel-engine/
Some of the engine architecture was very confusing to me (a relative newcomer to C++, and writing games) – there were four destructor-like functions one could call per pointer to an object! I spent a long time on bugs caused by my wrong assumptions about how the engine “should” work. Also I didn’t have a debug build, which I didn’t realise I could do!
The project was 4 months long (along with other assignments) so I learned a lot in that time, both through programming, and being taught in lectures and tutorials. It felt like every new thing I learned in maths or programming could be almost directly applied to the game. I decided a month before the project’s deadline to restart all the engine programming, switching development OS to Linux (an OS I had barely used) which gave me a lot of motivation to work hard, fast and well. I was still writing the development tools for the artists to add their work a week before the deadline! I taught myself skills that I needed quickly, such as how to write a shader in GLSL in a day, then writing the music-dependent sky shader in a couple of hours.
I knew my personality did not make me a natural leader before starting the project, but after making quite a few mistakes, I learnt an awful lot about managing a team, and getting them working efficiently. Since we were a group of introverts, strung together, communication was in short supply, and at times the project suffered for that.
Here is a link to the executable and source code (unfortunately, it only works in 64-bit Linux at the moment. If I have the time and inclination I might make it multi platform later): https://dl.dropbox.com/u/32538545/Game%20distributable%20linux%20Feb%205th.zip
Here are some gameplay videos (having chosen some songs that are distributable under the creative commons license – I don’t want to get in trouble for copyright infringement). Also I had to cut the songs down due to my video recording software breaking after a minute every recording:
Jack Bzowski – Art Director
Tom Beaufoy – Programmer (Beat detection, OBJ animation)
Tongqi Ou – Artist