What is it?
HLDS Ping Booster is a small tweak to the Half-Life Dedicated Server that drastically reduces
player pings and generally makes the game much more responsive.
Technical explanation:
There is a small flaw in the way frame timing is implemented in HLDS.
Basically your average HL server is just sitting idle about 15ms between
every frame. This little tweak fixes that.
Servers
Want to see the booster in action? Download The All-Seeing Eye for a list of boosted servers.
(The filter for Ping Booster is under Half-Life > Server Type > Ping Booster)
Installing
Just uncompress HLDSPingBooster-1.0.tar.gz in your HL server directory
(the one where hlds_run is), and instead of using hlds_run to start the
server, use hlds_boost. Clients don't have to install anything.
(This problem exists on the Windows HLDS as well, but we have not yet made a
fix for that platform.)
|
|
|
FAQ
I have a problem with the Booster not finding booster.so.
Download the 1.0 version.
If it still doesn't work, edit hlds_boost, and change
LD_PRELOAD=./booster.so to LD_PRELOAD=/full/path/here/booster.so
My server seems to use much more CPU when Booster is installed.
A normal HL server is often sleeping more than it's doing
actual work. It was designed to run at 100fps, but due to the flaw
(which the booster fixes), it rarely runs at over 30fps.
A HL server with Ping Booster basically has no limit on how fast
it can go. The default Ping Booster configuration is to wake up when there
is some work to do and not limit the number of server frames per second
in any other way. This is ideal for reducing latency, but at the same
time it raises CPU usage slightly.
However, it is possible to limit the server fps by editing
hlds_boost and changing sys_ticrate to something smaller. 100 is the
default value in HL, setting it there will make the server perform more or
less like it was designed to. Setting it to about 20-30, you should get
about same kind of CPU usage as before and still get some small benefits
from the booster (not as clearly visible though).
Note that a server running at 100fps does NOT use twice as much
CPU as a server running at 50fps. It doesn't work that way. The more
server frames you have the less work there is to be done in every frame.
The extra CPU usage comes mostly from sending more server-to-client
updates.
When I'm playing on a Boosted server, ping seems to be ok, but I get a
lot of choke.
Like explained in the previous question, Boosted servers generally
run at a higher fps than a normal HL server. One of the benefits of this
is the ability to send more server-to-client updates per second. This is
also (most likely) what causes your connection to choke.
You have probably raised your cl_updaterate from the default 20
(cl_updaterate controls the number of server-to-client packets the client
wants to get per second). Using a higher setting may have worked just fine
before because the server can only send one packet per frame to you, so when
it's running at 20-30fps you never get over 30 packets per second no
matter how many you want. With a boosted server you may actually get
that 100 packets per second that you requested. So what you have to
do is lower your cl_updaterate to a level where it seems to work well.
You may also need to tweak your 'rate' to find the ideal configuration.
When are you going to make a windows version?
Dunno. It may require a bit more work than with Linux. Probably
not anyday soon.. But then again you never know :)
I can't use hlds_boost to start the server. Is there any other way of
using it?
hlds_boost is just a shell script, provided for convenience.
If you look inside it, you should be able to figure out how to integrate
it in your own start scripts. Basically you have to have the enviroment
variable LD_PRELOAD pointing to booster.so, use sys_ticrate 1000 and
sv_maxupdaterate 100. You can put the last two in your server.cfg if you
want.
|
|