Hi, I’ve been trying for a long time to create a rhythmic game such as Line dancing or Geometry Dash. My only problem with which lately I have been having difficulties is the synchronization of the music with respect to the movement of the character.
This is the case, I have my 3D character that moves a level created to measure for the music, the problem is not the level but because of the variation of the FPS my character does not move at a constant speed.
Since then I began to investigate in depth how to create this perfect synchronization between the music and the player, most of the supports of this type of synchronization problems are about “How to create a game like Guitar Hero”, handling events through the beats of music, or how to start events with animations through music but none of this (mostly) served me for my problem.
Then I realized that this “perfect” synchronization was almost impossible because there were many (or perhaps too many) factors that prevented this such as the sound hardware, the response time of input on the device and in the game, the device in which is running, human error with a simple delay and many other things
So, I tried to handle the audio to follow the player, it did not work for me. I tried to change the time of the game with a calculation between the time and the FPS, it did not work either. But stop doing so many laps, I began to understand the true functioning of Time.deltaTime and Time.smoothDeltaTime, then I applied it in the code and at the beginning it worked but then with time I realized that although I applied Time.smoothDeltaTime, even so, there were some variations that unbalanced all the speed of the game, and my character sometimes skips parts of the level more than they should, and then other times it returns to normal.
Sorry if all this was very extensive, I wanted in this publication to show that I have tried many other alternatives and until now I do not find any completely stable like those that are seen in this previously named games, if you have any doubt of these attempts I made with I will clarify your question and hope you can find a solution to this problem
Thank you
PS: sorry for my English, I am using the translator ![]()