As far as I know, it uses upnp as default (built-in) which is not safe and also you need a router to create or connect to server in online. I did not know much about multiplayer, but I know its hard. I did not forced me to learn as I did not need it now.
So do you know these? Do you have proper setup with router.
Or maybe I am wrong somewhere… I have no idea on it, just have some experience.
Alright, so it seems that the server ticks are determined how you program RPCs. If you put them in _physics_process, it will tick 60 times per second or a custom value.
So to control the tick speed, I just plug in my network sync functions into a process node.
I’ll figure out my last 2 questions, then edit them here.
Edit:
For question 3: It is very unlikely that server updates (ticks) need to by synchronized by an external system.
For question 4: The ideal tick rate for multiplayer PvP shooters is between 60hz and 120hz. 120hz is unnecessary and costs too much. I choose 60hz, as that’s the default _physics_process update rate.
Regarding 3 and 4.
Tick rates can never be perfectly synchronized. You don’t need to synchronize tick rates but it’s useful if you want to do client side prediction. If you want client and server to run the same number of physics ticks you will want to adjust the tick rate regularly https://docs.godotengine.org/en/stable/classes/class_engine.html#class-engine-property-physics-ticks-per-second. The best way to do this is to adjust the client tick rate (either faster or slower depending on whether it is behind or ahead of the server). Unfortunately, Godot automatically updates _physics_delta whenever you change the fixed update rate. This is a problem because you don’t want physics/character bodies to move differently you just want to fix a slight desynchronization. In summary it is a little annoying/requires modifying Godot to properly adjust the physics frame rate.
As others have mentioned, there’s no such thing as a “server tick rate” in Godot. However, you will have movement code under _physics_process which is pretty similar. Do not bother changing the default physics rate unless you run into a CPU related performance issue (usually too many collisions per frame). You are very unlikely to run into such an issue unless you have 1000s of collisions.
things like Cheat Engine has built-in speedhack, it vulnerable to it. Better to check amount of rendered frames in measured time period if it differ from certain multiplier so just disconnect the user