Theory/test, Music Games

This forum is currently in read-only mode.
From the Asset Store
20 high quality click sounds, ready to improve your game's UI instantly
  • Hey,

    I'm wondering how Construct could handle music based games like Bit Trip Beat

    Subscribe to Construct videos now

    So you notice how every impact is in time with the music. My thought is that you could use Time Delta to move objects at the correct tempo, so say a track is in 120bpm, which is double that of 60, 60beats at 60 bpm is 60 seconds. You could presumably time an objects movement so that it reaches the player at the correct time.

    But what happens if you have a game similar to rez where the player can 'shoot' at any time they wish, how would you lock the players actions so that he only fired in time with the music, and still keep the distance from player to target matched up so that when the bullet hit the target that was also in time with the music?

    Also how could we have objects moving with every beat of the music but still keep the movement looking smooth without it stop/starting with every beat?

    Does anyone have any theories on this?

  • I know that personally I wouldn't make a rhythm based game without the actual game being in control of the music being played, so that you have data on every note and all that.

    Not sure how games like Guitar Hero make it all always sync and work nice, though. Probably segmented music somehow.

  • I think how most music games are constructed, well games like bit trip at least, they will have a base piece of music which is the length of the level and every impact or action would play sounds of detail elements like melody or percussive sounds etc.

    I know that personally I wouldn't make a rhythm based game without the actual game being in control of the music being played, so that you have data on every note and all that.

    Not sure how games like Guitar Hero make it all always sync and work nice, though. Probably segmented music somehow.

  • Reading beats from audio is not reliable enough. It could work for something like Audiosurf but games like Guitar Hero and Bit Trip definitely have the things to press hardwired in there by a person. The problem I foresee is always the music managing to get out of sync somehow, which can probably happen in several ways.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Would it be possible to import a grid like sequencers have http://www.computermusic.co.uk/resource ... xporch.png with bars and beats drawn out as objects and you could say, when x hits beat 4 explode. etc

  • Ideally you would want something that works with midi files. Not just something that plays them, but gives you access to the score. You would also need to be able to use some sort of sound generator.

    ....cough, Python.....

  • Yeah midis would work but for sound midi sucks, you must surely be able to do it with wavs, as a composer using midi sounds is like going back to the dark ages. But maybe you could bounce the track as wavs but still use the midi data to for the game to read and run them in parallel.

    Ideally you would want something that works with midi files. Not just something that plays them, but gives you access to the score. You would also need to be able to use some sort of sound generator.

    ....cough, Python.....

  • Well you wouldn't have to use a soundfont. You just need the information contained in the midi.

    You could even use some other form of notation, like tablature, ABC, etc.

    Also a sound bank of wavs probably isn't the best way to go either, the file size would be huge.

    Like I said a generator, or even a vst could be used via Pyhton, or a plug if your feeling froggy.

    This might have an additional benefit when you take into account you can only cache so much sound into ram.

  • I may be misunderstanding... but games like Guitar Hero and DDR... the songs are made by people, they are not created randomly by the game to be in sync with the music.

  • The tracks are reverse-engineered in a studio to have each element separated, but the music isn't generated no, just muted or un-muted.

    I may be misunderstanding... but games like Guitar Hero and DDR... the songs are made by people, they are not created randomly by the game to be in sync with the music.

  • The tracks are reverse-engineered in a studio to have each element separated, but the music isn't generated no, just muted or un-muted.

    If the people record each instrument separately (not uncommon), they wouldn't have to split them.

    Also, it's hard to say if Construct can do something another game is doing unless you know how the other game is doing it. I bet Construct could do it, but you might want to do some googling for the method they use to make these kinds of games. Then you'd have something more specific to set up in Construct rather than just the idea of the gameplay mechanic. Knowing what's under the hood will save you some time and trouble.

  • The thing with music games is you need to decided how you are going to do things. If you want to be able to use just about any music then you will have to make your system compatible with that. If you have specific songs in mind then you can do more specific things, thats not to say you couldn't design an algorithm that would generate your system for you very well but it may be harder and take more time than hard coding it and may not be worth it if you are not panning on letting the user make their own music.

    I have actually been making a rythm based game for one of my classes. its actually going pretty well.

  • I am actually working on some (very) experimental small music game project and I have the feeling Construct should be able to handle a game like Bit.Trip.Beat without big troubles.

    From the video, it seems to me the game simply has at least two independent main audio tracks: one (or more) is the base which is played independently from the user actions which, in turn, play the other notes when a collision paddle/ball event is triggered. Of course we have to fine tune the balls speed and movement properly and precisely so that the triggered events are always in sync with the bass track which is providing the song's beat.

    Writing a python add-on to read/modify a MIDI file shouldn't be needed here but it'd be the best way to go if we want to make a game where the player can actually influence and change the music being played regarding tempo, pitch and articulation of the notes being played in real time.

  • I've been trying to figure out some way of using interactive music myself. Not really what CrudeMik is talking about, but something similar to guitar hero just for a platformer.

    I recently downloaded that huge file thats supposed to let you make plugins even with VC++ Express. I fiddle around with synths too so hoping I can program something to include a VST. (I know very little C++ so it'll take a while.)

    I'm confused about your first question Crude, do you want the player to be able to fire at anytime or to lock him in? For the locked in, I'd say do it like guitar hero games..the targets have to be hit by a certain space, if they are are you trigger the correct sound or..really, just don't mute the instrument. I thought about using that for my game, instruments on seperate channels that get muted if you got hit. (Thats part of why I want the VST, I figure adding effects would be more interesting.) I haven't tried the seperate channels yet, but I'm concerned about them getting out of sync.

    As for being able to fire at any time, the only thing thats coming to mind is to try to create stingers that would play well together and against a simplified backing track. Maybe write a guitar riff, use part of it for the first strike, for each combo after that you let more of the riff play.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)