I don't understand what the purpose of having the client rate be higher than the updates that clients are receiving from the server. If I am playing against someone who has 100fps then they are sending 100 updates per second to the server, but I am only receiving 20 updates per second from the server. Isn't that like trying to view a 100fps video on a 20hz monitor?
I think when people ask for increased tickrate they are really asking for more frequent updates from the server. In hl/source you can't send/receive more updates than the server tickrate, so upping it to 60 would allow clients to send/receive more. I don't know if it's possible in spark to receive more updates per second than the server tickrate.
Soul_RiderMod BeanJoin Date: 2004-06-19Member: 29388Members, Constellation, Squad Five Blue
edited September 2012
From what I understand it works like this, and I may be wrong...
Server tickrate represents the server 'Actions'.
If I send 100 updates per second to the server, and you send say 10, while the server is at 30 ticks, what this means is the server will process approx 3 of my move commands for every tick 100/30, however, for you the server can only process your movement commands once every 3 ticks (10/30).
This means every tick the server is working out where I am moved, and any collisions/hits, using 3 separate bits of move info. However, the server only works out where you are, and you any hits you receive every 3 ticks, because your update rate is so poor.
Spark server receives an update from you every client frame, but processes it using time files, every tick. If you have an FPS of at least 30, the server can calculate where you are, every tick. Increasing the number of server ticks to 60 just increases the number of times the server does it's moves. So me with 100fps gets updated using 1.3 bits of move info, and your movement only gets updated once every 6 ticks. Increasing tick rate has no effect on your performance.
Server tickrate controls the doing of the movement (not calculating, that is done between ticks as the info is received per frame from your client) and mainly, I stress here mainly, AI think commands. Expressly increasing the tickrate will increase the response of the AI, but do nothing to your performance.
It is not like the Source engine, in fact tick rate should probably be named something else in the spark engine, because everyone seems to think that if something is named the same as the source engine it works in the same way, and it does not at all. It is a very different engine architecture to source. It is almost a waste of time comparing them.
Does that clear it up any?
May not be 100% accurate, but is damn close...
EDIT -------
What you receive from the server is independent of what the client sends to the server. Client interpolation/lag-compensation/Prediction/whatever!!!! does the work on your machine between server ticks. the updates you receive from the server should be constant, meaning you always have a constant experience, unless gamers are running below 30fps.
This is where most of the current issues for gamers come from, low FPS of other players.
Comments
I think when people ask for increased tickrate they are really asking for more frequent updates from the server. In hl/source you can't send/receive more updates than the server tickrate, so upping it to 60 would allow clients to send/receive more. I don't know if it's possible in spark to receive more updates per second than the server tickrate.
Server tickrate represents the server 'Actions'.
If I send 100 updates per second to the server, and you send say 10, while the server is at 30 ticks, what this means is the server will process approx 3 of my move commands for every tick 100/30, however, for you the server can only process your movement commands once every 3 ticks (10/30).
This means every tick the server is working out where I am moved, and any collisions/hits, using 3 separate bits of move info. However, the server only works out where you are, and you any hits you receive every 3 ticks, because your update rate is so poor.
Spark server receives an update from you every client frame, but processes it using time files, every tick. If you have an FPS of at least 30, the server can calculate where you are, every tick. Increasing the number of server ticks to 60 just increases the number of times the server does it's moves. So me with 100fps gets updated using 1.3 bits of move info, and your movement only gets updated once every 6 ticks. Increasing tick rate has no effect on your performance.
Server tickrate controls the doing of the movement (not calculating, that is done between ticks as the info is received per frame from your client) and mainly, I stress here mainly, AI think commands. Expressly increasing the tickrate will increase the response of the AI, but do nothing to your performance.
It is not like the Source engine, in fact tick rate should probably be named something else in the spark engine, because everyone seems to think that if something is named the same as the source engine it works in the same way, and it does not at all. It is a very different engine architecture to source. It is almost a waste of time comparing them.
Does that clear it up any?
May not be 100% accurate, but is damn close...
EDIT -------
What you receive from the server is independent of what the client sends to the server. Client interpolation/lag-compensation/Prediction/whatever!!!! does the work on your machine between server ticks. the updates you receive from the server should be constant, meaning you always have a constant experience, unless gamers are running below 30fps.
This is where most of the current issues for gamers come from, low FPS of other players.