Bugfarm Tournament

For things that have to do with those crazy test servers... and yeah. By request of z-man, and, of course, you gotta obey...

Moderator: Z-Man

User avatar
Z-Man
God & Project Admin
Posts: 11220
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Bugfarm Tournament

Post by Z-Man » Mon Mar 17, 2008 12:26 am

As a social test for include votes, I put up a server called "Bugfarm Tournament". The idea: allow players to set various tournament modes. To suggest a server mode change, you need to be armathenticated and say

Code: Select all

/vote include <config file>
Where <config file> is one of the following:

ladle.cfg : ladle compatible fortress settings with hole score.
afl.cfg : AFL compatible settings.
fff.cfg : Fortress For Four settings.
sumo.cfg : regular standard sumo.
tst.cfg : Team Sumo settings.

hole.cfg : activate hole score.
nohole.cfg : deactivate hole score.

prepare.cfg : change server name to something indicating an organized game is about to start, activate team management (/lock, /invite) for everyone
start.cfg : resets the scores and starts the match.

restart.cfg : restarts the server; use if the config files messed something up.

User avatar
Lucifer
Project Developer & Local Moonshiner
Posts: 8610
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Post by Lucifer » Mon Mar 17, 2008 12:53 am

Hey, you guys all go make this work. It would really freaking rock if we could just have 4-6 server admins volunteer their servers for any tournament play that comes along, so that anybody who wants to run any sort of competition can do so. ;)
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden

User avatar
Z-Man
God & Project Admin
Posts: 11220
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Post by Z-Man » Mon Mar 17, 2008 1:37 pm

Good idea, haven't thought about that :) I put the files into a bzr branch:
https://code.launchpad.net/~armagetrona ... ent_server

For up-to-date docs, click on README.txt on this page:
http://bazaar.launchpad.net/~armagetron ... rver/files

User avatar
philippeqc
Long Poster - Project Developer - Sage
Posts: 1526
Joined: Mon Jul 12, 2004 8:55 am
Location: Stockholm
Contact:

Post by philippeqc » Mon Mar 17, 2008 4:53 pm

Neat idea. I think it will not take so long time before admin want to be able to control the list of configs that are available though this vote, and users want to have the command list the available configs.

Just some random thoughts that sound like trivial implementation but will probably cause lots of problems in reality ;)

/ph
Canis meus id comedit.

User avatar
Z-Man
God & Project Admin
Posts: 11220
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Post by Z-Man » Mon Mar 17, 2008 5:13 pm

philippeqc wrote:Neat idea. I think it will not take so long time before admin want to be able to control the list of configs
That bit is easy, just use symlinks to the config files you really want :)

For the other bit, I'd currently just rely on old fashioned documentation. We have directory content reading code in tDirectories, but it looks complicated, uses strings a lot and hasn't been actively used yet, so I'm very reluctant to just use it on 0.2.8 on a feature that is only active when the (still considered experimental) armathentication is enabled. It sounds like a can't-miss recipe for security holes.

User avatar
wrtlprnft
Reverse Outside Corner Grinder
Posts: 1679
Joined: Wed Jan 04, 2006 4:42 am
Location: 0x08048000
Contact:

Post by wrtlprnft » Mon Mar 17, 2008 6:00 pm

Maybe make an ECHO command that just prints out its argument to con (and therefore to the guy who invoced it) so the server admin can do something like

Code: Select all

find /path/to/user/config/dir | (echo "ECHO "; while read i; do echo -n - "$i\\\n"; done) > ls.cfg
There's no place like ::1

User avatar
Z-Man
God & Project Admin
Posts: 11220
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Post by Z-Man » Mon Mar 17, 2008 6:21 pm

Hmm, that would require that everyone would somehow have the right to include that ls.cfg config file; the only way to do so would be to open the /admin and INCLUDE commands to everyone (or a new /include chat command, which I sometimes try to invoke by mistake, so I'll probably add it at one point or another anyway).

How about a modular configurable help system? We already have the "/help" chat command on the trunk, we could refine that to make the following possible:

Code: Select all

# /help
<introductory blurb>

Say /help TOPIC to get help on the following topics.
commands : list all chat commands. (<-- the only predefined one )
policies : server policies.
schedule : scheduled events on this server.
votes : voteable configuration files.

# /help votes
The following configuration files are available for voting:
<list>
That looks like work, though; the config system is probably not really suited to compose these help messages.

User avatar
wrtlprnft
Reverse Outside Corner Grinder
Posts: 1679
Joined: Wed Jan 04, 2006 4:42 am
Location: 0x08048000
Contact:

Post by wrtlprnft » Mon Mar 17, 2008 6:28 pm

Code: Select all

HELP_INTRODUCTORY_BLURB "<introductory blurb>"

ADD_HELP_TOPIC policies "server policies" "Insert stuff here\non multiple lines"
ADD_HELP_TOPIC schedule "scheduled events on this server" "blah"
ADD_HELP_TOPIC votes "voteable configuration files" "The following configuration files are available for voting:\n<list>"

HELP_USE_FULLSCREEN_MESSAGE 1
That shouldn't be too hard to implement…
There's no place like ::1

User avatar
Z-Man
God & Project Admin
Posts: 11220
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Post by Z-Man » Mon Mar 17, 2008 6:33 pm

Oh, /me forgot we support quoting strings, how silly :)

QUARG
Round Winner
Posts: 223
Joined: Thu Sep 14, 2006 2:38 pm
Location: montreal

Post by QUARG » Mon Mar 17, 2008 6:35 pm

How do you manage to clean the slate when including a new .cfg file? Do you do an include setting_dedicated.cfg prior to loading the next set of commands say sumo.cfg?

User avatar
Z-Man
God & Project Admin
Posts: 11220
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Post by Z-Man » Mon Mar 17, 2008 6:39 pm

Sort of. There's the vote/default.cfg, that's what gets included at the top of all config files. It's not perfect and I've likely forgotten some settings, so there will be a sequence of votes that leaves the server in a bastard configuration, and it only works as long as the configs are similar enough.

The reason I'm not just including the full default configuration is that it would spam the clients with needless configuration change messages, one for switching to the shipped default, one for switching back. I'll try to reduce the spam.

User avatar
DDMJ
Reverse Outside Corner Grinder
Posts: 1881
Joined: Thu Jun 08, 2006 12:15 am
Location: LA, CA, USA, NA
Contact:

Post by DDMJ » Mon Mar 17, 2008 8:51 pm

INCLUDE settings.cfg resets most settings I think

User avatar
wrtlprnft
Reverse Outside Corner Grinder
Posts: 1679
Joined: Wed Jan 04, 2006 4:42 am
Location: 0x08048000
Contact:

Post by wrtlprnft » Tue Mar 18, 2008 3:19 pm

Ok, the help system is there, mostly as I suggested it in my previous post, with the addition of help subtopics (mostly because it was the easiest way to display different help messages for krawall and non-krawall servers). Have a look at fortress café to see the default help messages (the ones below /help commands).

Code: Select all

# Help stuff

# This is a message that will be displayed if someone uses the /help chat
# command without arguments:

HELP_INTRODUCTORY_BLURB

# to add your own help topics you can use the following command:

# ADD_HELP_TOPIC <identifier> "short description" "help\ntext\nthat\ncan\nspan\nmany\nlines"

# the quotes are required if you want to use spaces.
# if the identifier contains underscores (_) it will be treated as a
# sub-identifier. For example, if you have an identifier "rules" and an
# identifier "rules_swearing", the last one will not appear on the listing
# you get with a plain "/help", but it will be at the bottom of the text
# you get with /help rules. You can nest them as deeply as you want, but
# remember that the player who seeks help has to type your identifiers…

# to get rid of a help command (either in scripts of if it was added by
# accident you can use

# REMOVE_HELP_TOPIC <identifier>
There's no place like ::1

User avatar
Z-Man
God & Project Admin
Posts: 11220
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne, Jabber: [email protected]
Contact:

Post by Z-Man » Tue Mar 18, 2008 4:55 pm

:o Wow, that was fast. My only chance of maintaining the developer pecking order is to point out mistakes, so here we go :) :

Code: Select all

se_defaultHelpTopics + sizeof(se_defaultHelpTopics)/sizeof(eHelpTopic)
Does not, in fact, point to the end element (one past the last) of the array, because the array elements in question are not eHelpTopics. I restructured that bit of code so the default help topics are only held in memory once (and I think it also avoids some bits of copying around, not that it matters much).

User avatar
Lucifer
Project Developer & Local Moonshiner
Posts: 8610
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Post by Lucifer » Tue Mar 18, 2008 5:52 pm

How about a client-side version of this that we can use to provide generic in-game help?

Only problem with that is that the in-game chat isn't the place for help for a single player game, heh. At least the config mechanism would be helpful and then maybe some system will materialize that'll take it to where players can actually use it.
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden

Post Reply