Official Racer Challenge Room Setup
Overview
The server has support for "fixed" server rooms in order to have a permanent room for e.g. hosting Racer/TechRacer maps. Fixed rooms can exist even when nobody is inside.
On the official server, we use this for the Official Racer Challenge.
A little manual setup is required, and at present must be recreated on every new release and server restart.
Removing the Room
In order to add a room for a new release, the old room must be removed first. Join the game using the old release, join the Official Racer Challenge room, then run:
/unfix
/delegate YourNick
Then exit. The room will be removed.
Updating the room config for a new release
The racer room configuration is currently here: https://hg.hedgewars.org/hedgewars/raw-file/tip/misc/racer.yaml
It is stored relative to the game server.
According to unc0rr, any errors in syntax will kill the server, so be careful!
To update for a new release you usually just need to update
AMMO
for any newly added weapon entries.
New maps can be added too, using existing entries as a reference.
Setting up the room
After having removed the old room, create a new room named "Official Racer Challenge". Restrict join to registered players only (unregistered players don't get recorded in the stats) then run:
/loadroom racer.yaml
/fix
/callvote map #01
And leave. The
/callvote
will cause error messages as long as you are still the room admin, but they don't matter. You can quit/rejoin before that step if you wish.
Running checker
Make sure you have Hedgewars working, your login/password pair (admin rights on the server required!) is stored in frontend's config.
To build checker:
$ cabal build checker
Put
checker.ini
into
~/.hedgewars
with such content:
[engine]
exe=/usr/home/hedgewars/<VERSION>/bin/hwengine
prefix=/usr/home/hedgewars/<VERSION>/share/hedgewars/Data
When updating between versions, update version in checker's source, run this on the server's database to have new stats appear on the records page (see also ProtocolNumbers):
INSERT INTO gameversions (protocol, version) VALUES (59, '1.0.0'), (60, '1.0.1-dev');
(Replace the version numbers (i.e. “1.0.0” and “1.0.1-dev”) and protocol numbers (i.e. 59 and 60) with the correct ones.)
If you see too many "Check failed" messages in your checker's log, check your setup. If you fixed a problem with engine, you might want to recheck previously failed replays by moving them from "
failed
" to "
replays
" folder on the game server. You may do it on a live system, that's not a problem.
It is also not a problem to stop checker at any point. If you have engine hanging for too long (shouldn't happen since 0.9.24) and
game0.log
suggests that there's nothing going on in the game being replayed, just kill the engine process to count this attempt as failed.
It is fine to have multiple instances of checker running, even on the same host and on the same account, if you like. This helps when you have lots of replays to check and some spare CPU cores.