I want to know why the tick_rate maximum value is limited to 30? I have a problem with collisions detection in fast movements. The Server receives players’ input and trying to simulate their movement and in every players position update cycle, the server compares positions. In low tick_rate values even 30, the server can’t detect collision in lots of situations when players speed is higher than a certain value.
I am using this simple formula for movement:
new position = current position + speed / tick_rate
and it’s obvious in tick_rate=60 we have smoother movement and the server can find collision far better than tick_rate=30
The maximum tick rate is set at 30 to ensure a balance between individual matches, maximum match concurrency, and runtime scheduler load. We’re looking into increasing this upper limit soon.
Meanwhile the standard approach is to use both the new and old positions of 2 objects to check if the lines [object1-old-position, object1-new-position] and [object2-old-position, object2-new-positions] intersect. This kind of collision formula that’s a little bit less sensitive to the delta between new and old positions of your entities.
I eager for 60fps game logic in the server, meanwhile i should say this, i don’t compare the exact position of players and I has implemented something like your approach for collision detection, but you know for low fps/ high speed, delta distance for each player is too much and even approaches like that you mentioned have trouble with this situations especially when we want the approximate point of collision.