Blog

You are filtering on tag 'music island'. Remove Filters
RSS

Making Music Games (a programmer's postmortem)

March 20th, 2012

Being a rhythm game, Music Island presented a number of unique and fun challeges from a programming perspective. The great difficulty in programming rhythm-based games is in keeping gameplay synchronized with the game's music. A fully-featured triple-A engine like BASS might be able to analyze the music in real-time and use it to guide gameplay. However, for our one-programmer team, analyzing the stream in real-time was not really an option. We would have to find some way to overlay music onto the game and force the game to keep pace with it.

The concept was fairly simple. We would use MP3 music. With the length of the song, the number of measures, and the time signature, I can calculate the time in milliseconds between each beat - or any subdivision of the beat. When the song is running, the program keeps track of which beat it is on simply by counting up with a Stopwatch. When the time exceeds the amount of time per beat, we go to the next one (carrying over the leftover time).

To have the game actually use this information, I determine what kind of beat the song was currently on (quarters, eighths, thirty-seconds, etc) and the distance in thirty-second notes from the nearest quarter note. If that value is within a threshold, I accept input and generate a spell.

I found that MP3 files were not actually a sufficient solution, for our resources at least (the XNA engine). Despite our best efforts to get accurate timings, I could not make the game stay in sync with the music. Within 5 or 10 seconds, they would be on off-beats, and XNA offered me no way to control how the MP3 was being played to attempt to correct this. I concluded that XNA's MediaPlayer class, which was playing the MP3s, was probably the issue, so our solution was to split the songs up into segments of WAVs. In addition, our songs were designed and composed such that they could be split up into layers by instrument. So we ended up with a bunch of two-measure wave files of single-instrument lines. I wrote an XML format so our composer could stack and sequence these segments however he liked. This helped cut down on the otherwise-huge filesize wav files would have caused by re-using tunes multiple times in a song.

Now with these segmented WAVs, we had far more control over the speed the music was played at, and we were able to synchronize the music periodically. This was ultimately sufficient to keep the game as a whole completely in sync. It was a feature we were still tweaking, though, even after the game's first submission!


Permalink

Music Island RELEASE

March 19th, 2012

That's right, it's OUT! Music Island is finally through the XBox Live Indie Games review process, and was released just minutes ago on the same system.

I'm very excited to finally have been behind a truly published game. We're giving out the trial version of the game for free on the PC, and you can get it here as an installer that will take care of everything, or here as an executable if you already have the XNA and .NET frameworks. And, of course, you should buy it on XBox Live Indie Games!


Permalink

Music Island Release Date

March 14th, 2012

Music Island has finally been approved by Xbox Live Indie Games, and the release date is set for March 19th! Finally, Thunderfish's first game will be out for purchase. I think all the work we've put in since June of last year has paid off, and we have a fine game to show for it. Pick it up if you can, especially if you're a fan of rhythm- and beat-oriented games!


Permalink

Music Island Back In Review...

February 5th, 2012 (edited November 3rd, 2022)

The XBLIG review process has been long, but Music Island is in review for hopefully the final week or two before its release. Despite the lack of support for Live leaderboards for indie games, Music Island features a leaderboard system through the use of a distributed storage technique that should allow highscores to transfer through the system, giving players the chance to compare themselves to others in the game.

One reviewer: "My four year old couldn't get past the brown mask. She just kept saying 'the guy looks too weird and creepy'. I thought the art was cute, so take those comments with a grain of salt!"

Crazy Island Man

Permalink

Music Island Release

January 12th, 2012

Our first XBox Live Indie game has been submitted to peer review this week! This game was begun in June of last year and finished in early December. The remainder of December was spent shooting bugs, which were quite prevalent!

Music Island is a rhythm-based arcade-style game with generative music. In it, you must defend an island from streams of invading sea creatures by casting the appropriate spell at them on the song's beat. This action generates musical notes that build on the song's background rhythm. The game features a 10-level Story or tutorial mode, and the highscore-based Infinite mode.

This project was a good experience in working with a small team to make a clear, organized game. The game was produced by Justin Britch, with music and sound by Bryan Ploof and art and design by Jacob Anderson. The programming was done by myself. I will post when the game is approved and available on the XBox Live Indie system.

thunderfishentertainment.com


Permalink


Previous Page
5 posts — page 1 of 1
Next Page