Rhythm Game (RB Clone) – Updates Thread

  • This topic is empty.
Viewing 15 posts - 16 through 30 (of 36 total)
  • Author
    Posts
  • #484526
    Bansheeflyer
    Moderator

      It is actually fairly simple once you get past the “try to read midi and get frustrated” part. I store all the notes (easy, medium, hard and expert) of an instrument in an array list, then depending on the difficulty the user selected (which in the video is hard coded at Expert) i filter all the notes that are not that specific to that difficulty except things like markers and send the other notes to another array which makes a difficulty change mid-song possible. After all releated to midi is setup, i “pre-spawn” the notes, and then I start a coroutine (a task that repeats until i stop it) that checks for the time and if a note has the same time as the current playback, i enable the note and set it up depending on the situation (it is a hopo? are forced hopos on/off enabled? is the length longer that a 1/16 note?, etc.). For the board sync i use a clock that counts Unity’s delta time and try to keep it in sync with the audio source.

       

      I guess then theoretically that’s how you can display the UI of vocals then, correct? The difficult part would actually be how the program calculates pitches.

       

      Please forgive I’m still a newbie learning programming so this is all fascinating to me.

      #484528
      MissingElements
      Participant

        I’m really digging this! This is super cool! Is there any chance, at all, please don’t waste your time on it if you are not interested in it, but would you do a Rock Band Blitz rhythm game??? I want to play custom songs on that game so bad that I even tried making my own game, but I’m way to inexperienced at that kind of stuff, I had literally no idea what I was doing.

        #484531
        Farottone
        Keymaster

           

          I guess then theoretically that’s how you can display the UI of vocals then, correct? The difficult part would actually be how the program calculates pitches.

           

          Actually, the way Rock Band manages vocals technically is beyond impressive. There’s so much in there that I don’t think any independent programmer could really ever replicate anything like that not only in terms of pitching recognition but also vibrato, timing, etc.

          #484533

           

          I guess then theoretically that’s how you can display the UI of vocals then, correct? The difficult part would actually be how the program calculates pitches.

           

          Please forgive I’m still a newbie learning programming so this is all fascinating to me.

          No problem, yeah, i can display the vocal notes along with the lyrics the same way as the instruments… as those are midi notes too, the only thing that would be missing is the vocal recognition

          #484535
          TrojanNemo
          Participant

            That’s the one thing that Phase Shift never did. They wanted to figure it out on their own, never did, and since they kept it closed source, it never went anywhere. But displaying lyrics and vocal charts is relatively easy. I do it in cPlayer, and there was someone else who started a program for that here before he disappeared. Recognizing and evaluating the input – that’s the challenge.

            #484551
            Maxton
            Participant

              Nice work, I too have been working on a RB clone in Unity. I’d be interested to know how you get your framerate so high. Are you decoding the audio directly or do you have to convert it first?

               

              If you want easy support for CON files I have a library called “GameArchives” written in C# which you could use (LGPL-licensed), it has a pretty solid API for file access: https://github.com/maxton/GameArchives

              #484557

              For the audio files I just load them directly into the game with WWW which then goes into different audio sources that have seperate mixer groups in it so I can later add things like bass boost or a mute if failed thing. For the framerate i just did something similar to lightmapping. I disabled all the lights on the scene, set all shaders to unlit and create textures with the reflections and light baked on them, also I tried to optimize the models by creating a very low poly version of them and… Instead of Instantiating the notes on realtime I just pre spawn them before the song starts and then just I just enable them as needed.

              #484581

              This looks very promising! <img decoding=” src=”/wp-content/uploads/invision_emoticons/default_SA_smile.gif” />

              #484611

              I saw this on reddit, interesting. I know it’s early stages, but you should think about lane/highway speed when using lower difficulties. ie: easy is not just expert speed with less gems. And then how this relates to showing multiple lanes at the same time so they stay in sync.

               

              Good luck.

              #484618

              That’s already in! I’ll include a setting to test out those things <img decoding=” src=”/wp-content/uploads/invision_emoticons/default_SA_smile.gif” />

              #484674
              Anonymous

                 

                Actually, the way Rock Band manages vocals technically is beyond impressive. There’s so much in there that I don’t think any independent programmer could really ever replicate anything like that not only in terms of pitching recognition but also vibrato, timing, etc.

                No offense to the programmers at Harmonix, but it’s pretty simple to understand once you’ve looked at the source code for a few guitar tuner apps. Some have better, more complex ways of detecting pitch while others have way easier albeit slightly less accurate ways that can be pretty easily replicated in a game like this. I’m assuming Harmonix went with the former, probably FFT, which is the standard way of analyzing frequency, but it’s really not entirely necessary when there’s other ways that don’t require as much expertise as FFT does.

                #484698
                Hey everyone! Since the last update I’ve been working on adding gameplay to the game. The gameplay shown in the video is still a bit basic and has some bugs but it’s getting somewhere. (Keep in mind that I’m also using a Keyboard =P). I should have a public build in the next few days!

                Changelog since last update:
                Hit Detection System
                Input System
                Basic Score System
                TODO:
                – Improve Score System (Sustains, OD, etc.)
                – OD and Solo markers that affect on gameplay. (Right now if you strum those notes, they won’t give OD or they won’t count for a solo section).
                – Drum Gameplay
                – Instrument Support – LOTS OF BUG FIXING!
                #484707
                Bansheeflyer
                Moderator

                  What? Only 500-600FPS? Talk about poor optimization. <img decoding=” src=”/wp-content/uploads/invision_emoticons/default_SA_wink.gif” />

                   

                  Starting to look good! Will we get to only use a keyboard to play it? Haha, that would change the entire definition of a “keytar”.

                  #484709
                  Farottone
                  Keymaster

                    No offense to the programmers at Harmonix, but it’s pretty simple to understand once you’ve looked at the source code for a few guitar tuner apps. Some have better, more complex ways of detecting pitch while others have way easier albeit slightly less accurate ways that can be pretty easily replicated in a game like this. I’m assuming Harmonix went with the former, probably FFT, which is the standard way of analyzing frequency, but it’s really not entirely necessary when there’s other ways that don’t require as much expertise as FFT does.

                     

                    No offense but either you know how their system works or you don’t. If you do, you know that pure pitch detection is only a part of the system (setting aside the fact that tuning a guitar != detecting vocals pitch), there’s way more to do to get from the player signing to a score being awarded.

                    #484712

                    What? Only 500-600FPS? Talk about poor optimization. <img decoding=” src=”/wp-content/uploads/invision_emoticons/default_SA_wink.gif” />

                     

                    Starting to look good! Will we get to only use a keyboard to play it? Haha, that would change the entire definition of a “keytar”.

                    It will support instruments too at a certain point <img decoding=” src=”/wp-content/uploads/invision_emoticons/default_SA_smile.gif” />

                  Viewing 15 posts - 16 through 30 (of 36 total)
                  • You must be logged in to reply to this topic.
                  Back to top button