author Wuzzy
Tue, 13 Oct 2020 13:50:06 +0200
changeset 2196 5c752aa0d1bf
parent 2082 bb914d6298f2
permissions -rw-r--r--
LuaGlobals: fix gfBorder

#summary How to setup the Official Racer Challenge room

= 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:
/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
/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:

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.