I have curious question about music rhythm based genre while I'm making a code for the game. Is it really better if I set a random pattern encountered on every music played or there is a specific pattern depending on the music and the difficulty? I have observed the Guitar Hero 3 game for the game console where the difficulty is set on the number of strings used and possible number of combo (e.g. two-string combo). Compared to the Tap Tap Revenge for the Android and iPhone, the difficulty based on the number of BPM (Beat per Minute), meaning, number of targets spawn and must be hit.

  • \$\begingroup\$ Isn't the pattern predefined for the most difficult level, and positions removed for lesser difficulty levels? I think a random pattern would be very difficult, since the user would probably like to learn the pattern, to play it better. \$\endgroup\$ – MichaelHouse Oct 9 '12 at 4:04
  • \$\begingroup\$ Positions removed for lesser difficulty, huh? The thing I want to know is that encountering/adding/spawning more targets in a music rhythm game depending on the difficulty. The more difficult, more targets to spawn. And, if specific pattern needed, that would be provided basically by the programmers by adding three musics by default at the start provided by a specific BPM code each, right? I'm not gonna focused on reading BPM on the downloaded music. Only the premade available by default when I'm putting this code to make a game. Hope I didn't misinterpret your comment. \$\endgroup\$ – David Dimalanta Oct 9 '12 at 4:53
  • \$\begingroup\$ I would bet that Guitar Hero/Rock band define all their difficulty levels manually. I've not had experience with any of the other rhythm games, so I can't say. Though this question really depends on how your game works. Can users add their own music? Does it utilize beat detection for automatically generating patterns? Or are all song patterns defined by the developer? \$\endgroup\$ – MichaelHouse Oct 9 '12 at 4:59
  • 1
    \$\begingroup\$ For now, I want to know how to utilize beat detection to detect if a specific sound heard by detection or computation of code, it'll spawn a target ball towards the target hitting circle pad; and patterns defined by the developer. I'm only making for the version 1 of the game. \$\endgroup\$ – David Dimalanta Oct 9 '12 at 5:03

Don't use a random pattern, people would like to use their muscle memory to play a song the same every time.

I suggest you define the pattern for the entire song, and give each position a difficulty rating. The most difficult version of the song would include all the difficulties, say 1-5. Where as the medium version of the song would contain all the positions rated 3 or below. While the easiest version of the song would only contain rank 1 positions.

It would likely be easiest and most logical to build up these layers of difficulty from the easiest to hardest. On the first pass of analyzing the song, just get the most radical changes and the strongest beats. Then progress from there, filling in the richness of the song with more positions to be played.

But remember that each level should also contain those before it. This will help the players progress from one difficulty level to the next.

  • 1
    \$\begingroup\$ If you say strongest beats, then that means it will only spawn a target sphere, right? How about if with the lowest pitch of sound is detected, does it spawn at the left column; medium pitch for spawning only at the center column; and highest pitch for spawning a target sphere at the right? \$\endgroup\$ – David Dimalanta Oct 9 '12 at 5:10
  • \$\begingroup\$ It sounds like a good idea. However, that's really something you'll need to test out and see if it generates the kind of patterns you want for the songs you select. I imagine the algorithms will vary depending on the type of music. You may want to detect all the beats and rate them, then divide them evenly. This should help with songs that contain an uneven amount of a low/medium/high pitch. \$\endgroup\$ – MichaelHouse Oct 9 '12 at 5:25
  • 2
    \$\begingroup\$ Anyways, thanks for the help, Byte56. For now, my curiosity will go on to crack the code. \$\endgroup\$ – David Dimalanta Oct 9 '12 at 5:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.