Considering the resolution limit, only offering 256 pixels at a time, still many chose to make a complicated game. Instead, I chose a concept that would not require much graphical feedback- a rhythm game.
Making this in Game Maker would seem kind of a problem. Normally a game would process 30 steps per second. If you're using Game Maker for quite some time, then you know that in a step all info regarding to the game is updated, like looking for new keyboard presses or moving the player or enemies around the screen. There is, however, no guarantee that it will keep up to those 30 steps per second- on slow computers Game Maker chooses to slow down the step amount to make sure the hardware can keep up with the game. A very respectable choice- exept that it doesn't work for rhythm games, since the music keeps playing in it's own tempo even if the game lags behind, making your rhythm game an disaster.
The solution is quite clever. We have this little variable, current_time, which contains the amount of milliseconds since the player's computer booted. Does it sound useless? Yeah, it does. Is it useless? Of course not. If we are making sure that there is a variable that contains the value of current_time in the previous step, we can calculate how many milliseconds have passed since the previous step. In turn, we can use this to move our objects according to this value instead of just the steps. I called this function scr_timedelta.
Now it keeps up to time, but how about the beat? For that, we use the Beats Per Minute, or BPM for short. You could call BPM the tempo of the music. The faster it goes, the quicker the player needs to react to incoming notes.
Incompetech.com, the royalty free music site where all the music in my games come from (as of writing), lists the BPM of each song right next to it. This made the site again my choice for music when making this game. Lets take Easy Lemon, the first level of Be_AT, as an example. This song has 82 BPM.
Look at the following code to see how I translated BPM to Gameplay (written in GML, ran in a step event):
bpm = 82 //This varies per song. This BPM is for the song Easy Lemon (60 Seconds) by Kevin McLeod.
bps = bpm/60
bpms = bps/1000 //Since global.timedelta is in ms, we convert the bpm to bpms
global.beatstep = global.timedelta*bpms //How many beats have processed since the last step?
global.process += global.beatstep //How many beats have happened since the start of the level?
global.beat = global.process - floor(global.process) //What is our position in the current beat?
if global.beat <= 0.05 //If the beat has just started...
{global.onbeat = true} //Then we are 'on the beat'.
else
if global.beat >= 0.95 //If the beat has almost ended...
{global.onbeat = true} //We are on the beat!
else //If we're not on the beginning nor end of the beat...
{global.onbeat = false} //Then we're not on the beat.
Also notice that we'll never check if global.beat is exactly 0 or 1. The reason for this is that the program will never perfectly arrive at this point- always a bit before or after the perfect beat. There is also no chance the player will give input 100% perfectly on the beat.
So now then, how do we make stuff move on the beat? Think of the amount of pixels you want them to move. For example, eight pixels will suffice (since it's an 32x32 game, remember?). Then we pick the x or y axis and add or subtract 8*global.step . This will make sure the object moves eight pixels per beat in your preferred direction. You can also make objects or backgrounds change color when global.onbeat is true.
Now you can make stuff happen on the beat! For Be_AT this worked pretty well. It was really cool to make a rhythm game myself, and it gave me some good insights on how hard it is to make a really good rhythm game. I hope to see lots more rhythm games (I would like to see lots of rhythm games on Wii U, since the only thing we have as of yet it Nintendo Land's Octopus Dance) and hope this helps you to make your own rhythm game... or at least, make menu elements move on the beat. Good luck!
(Also see this super useful blog post about coding rhythm games: http://illogictree.com/blog/2010/05/how-to-code-a-rhythm-game/ !)