Search Unity

How to Make a Rhythm Game (osu! mania type w/ 3D)

Discussion in 'Editor & General Support' started by Regen_erate, Jan 11, 2019.

  1. Regen_erate

    Regen_erate

    Joined:
    Dec 12, 2018
    Posts:
    16
    Hello, there! I decided to reach out because I want to design a rhythm game. I am hoping that I can get plenty of beatmappers (the plan is to use the osu! editor for beatmapping), but for now, I need to get started. I know that I need to create clones of a
    Rigidbody
    . Any ideas on how to map this action to an osu! file (in milliseconds)?
     
  2. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,021
    It is better not to rely on physics/collision system for the notes. Base your entire playfield on purely data.

    e.g. "For this beatmap, at this time in the song, with this BPM and measure, and with this speed modifier, what would the screen looks like right now?" and you do that every frame + update all notes position. You should not move individual note as in "making it run straight", when you update all the things absolutely (not relatively to previous frame/previous data) the note will looks just like they are running straight, but will save you a lot of headache later. Like you can change speed mod mid-song and it will update to the correct presentation automatically.

    Then all you have to do to advance a beatmap should be just adding number making that "time" run forward based on delta time. Everything else should be displayed according to solely this time number. Do not tell any notes to move. Make all the notes ask what time it is right now and think where should it be based on its position in the chart. (You may store position in this time format, or in measure-based format which you will convert to time with BPM and time signature)

    The same for judgement, "for the current time if this lane is down which note would qualify for the hit and what is the judgement for it?". You don't measure the distance of the note object to the judgement line. You do things based on purely data, diffing note time and current time for the judgement.

    As for audio sync I have some information that may benefit you : http://exceed7.com/native-audio/rhythm-game-crash-course.html but you may want to get the mechanics programming right first.
     
    Last edited: Jan 11, 2019
    Regen_erate likes this.
  3. Regen_erate

    Regen_erate

    Joined:
    Dec 12, 2018
    Posts:
    16
    Thanks for the reply!